home *** CD-ROM | disk | FTP | other *** search
Wrap
<?xml version="1.0"?> <doc> <assembly> <name> StormSource.Gps </name> </assembly> <members> <member name="F:StormSource.Gps.Azimuth.North"> <summary>Represents a direction of travel of 0°.</summary> <example> <code lang="VB">Dim MyAngle As Angle = Angle.North</code> <code lang="C#">Angle MyAngle = Angle.North;</code> </example> </member><member name="F:StormSource.Gps.Azimuth.NorthNorthEast"> <summary>Represents a direction of travel of 22.5°, between north and northeast.</summary> <example> <code lang="VB">Dim MyAngle As Angle = Angle.NorthNorthEast</code> <code lang="C#">Angle MyAngle = Angle.NorthNorthEast;</code> </example> </member><member name="F:StormSource.Gps.Azimuth.NorthEast"> <summary>Represents a direction of travel of 45°.</summary> <example> <code lang="VB">Dim MyAngle As Angle = Angle.NorthEast</code> <code lang="C#">Angle MyAngle = Angle.NorthEast;</code> </example> </member><member name="F:StormSource.Gps.Azimuth.EastNorthEast"> <summary>Represents a direction of travel of 0°.</summary> <example> <code lang="VB">Dim MyAngle As Angle = Angle.EastNorthEast</code> <code lang="C#">Angle MyAngle = Angle.EastNorthEast;</code> </example> </member><member name="F:StormSource.Gps.Azimuth.East"> <summary>Represents a direction of travel of 90°.</summary> <example> <code lang="VB">Dim MyAngle As Angle = Angle.East</code> <code lang="C#">Angle MyAngle = Angle.East;</code> </example> </member><member name="F:StormSource.Gps.Azimuth.EastSouthEast"> <summary>Represents a direction of travel of 112.5°, between east and southeast.</summary> <example> <code lang="VB">Dim MyAngle As Angle = Angle.EastSouthEast</code> <code lang="C#">Angle MyAngle = Angle.EastSouthEast;</code> </example> </member><member name="F:StormSource.Gps.Azimuth.SouthEast"> <summary>Represents a direction of travel of 135°.</summary> <example> <code lang="VB">Dim MyAngle As Angle = Angle.SouthEast</code> <code lang="C#">Angle MyAngle = Angle.SouthEast;</code> </example> </member><member name="F:StormSource.Gps.Azimuth.SouthSouthEast"> <summary>Represents a direction of travel of 157.5°, between south and southeast.</summary> <example> <code lang="VB">Dim MyAngle As Angle = Angle.SouthSouthEast</code> <code lang="C#">Angle MyAngle = Angle.SouthSouthEast;</code> </example> </member><member name="F:StormSource.Gps.Azimuth.South"> <summary>Represents a direction of travel of 180°.</summary> <example> <code lang="VB">Dim MyAngle As Angle = Angle.South</code> <code lang="C#">Angle MyAngle = Angle.South;</code> </example> </member><member name="F:StormSource.Gps.Azimuth.SouthSouthWest"> <summary>Represents a direction of travel of 202.5°, between south and southwest.</summary> <example> <code lang="VB">Dim MyAngle As Angle = Angle.SouthSouthWest</code> <code lang="C#">Angle MyAngle = Angle.SouthSouthWest;</code> </example> </member><member name="F:StormSource.Gps.Azimuth.SouthWest"> <summary>Represents a direction of travel of 225°.</summary> <example> <code lang="VB">Dim MyAngle As Angle = Angle.SouthWest</code> <code lang="C#">Angle MyAngle = Angle.SouthWest;</code> </example> </member><member name="F:StormSource.Gps.Azimuth.WestSouthWest"> <summary>Represents a direction of travel of 247.5°, between west and southwest.</summary> <example> <code lang="VB">Dim MyAngle As Angle = Angle.WestSouthWest</code> <code lang="C#">Angle MyAngle = Angle.WestSouthWest;</code> </example> </member><member name="F:StormSource.Gps.Azimuth.West"> <summary>Represents a direction of travel of 270°.</summary> <example> <code lang="VB">Dim MyAngle As Angle = Angle.West</code> <code lang="C#">Angle MyAngle = Angle.West;</code> </example> </member><member name="F:StormSource.Gps.Azimuth.WestNorthWest"> <summary>Represents a direction of travel of 292.5°, between west and northwest.</summary> <example> <code lang="VB">Dim MyAngle As Angle = Angle.WestNorthWest</code> <code lang="C#">Angle MyAngle = Angle.WestNorthWest;</code> </example> </member><member name="F:StormSource.Gps.Azimuth.NorthWest"> <summary>Represents a direction of travel of 315°.</summary> <example> <code lang="VB">Dim MyAngle As Angle = Angle.NorthWest</code> <code lang="C#">Angle MyAngle = Angle.NorthWest;</code> </example> </member><member name="F:StormSource.Gps.Azimuth.NorthNorthWest"> <summary>Represents a direction of travel of 337.5°, between north and northwest.</summary> <example> <code lang="VB">Dim MyAngle As Angle = Angle.NorthNorthWest</code> <code lang="C#">Angle MyAngle = Angle.NorthNorthWest;</code> </example> </member><member name="E:StormSource.Gps.Azimuth.CardinalDirectionChanged(System.Object,StormSource.Gps.AzimuthEventArgs)"> <summary>Occurs when the compass direction has changed.</summary> <remarks> This event is most useful for determining when the <em>general</em> direction of travel has changed. </remarks> <seealso cref="P:StormSource.Gps.Azimuth.CardinalDirection">CardinalDirection Property</seealso> </member><member name="M:StormSource.Gps.Azimuth.#ctor"> <summary>Creates a new instance.</summary> <example> This example creates a new azimuth with a default value of 0°. <code lang="VB"> Dim MyAzimuth As New Azimuth() </code> <code lang="C#"> Azimuth MyAzimuth = new Azimuth(); </code> </example> </member><member name="M:StormSource.Gps.Azimuth.#ctor(StormSource.Gps.Azimuth)"> <overloads>Creates a copy of another azimuth.</overloads> <remarks>Known as a "copy constructor," this constructor provides a quick way to copy an azimuth object.</remarks> <example> This example creates a new azimuth with a default value of 0°. <code lang="VB"> Dim Azimuth1 As New Azimuth(90) Dim Azimuth2 As New Azimuth(Azimuth1) </code> <code lang="C#"> Azimuth Azimuth1 = new Azimuth(90); Azimuth Azimuth2 = new Azimuth(Azimuth1); </code> </example> </member><member name="M:StormSource.Gps.Azimuth.#ctor(System.Double,System.Boolean)"> <summary>Creates a new, immutable instance.</summary> <example> This example creates an azimuth of 90° which cannot be modified. <code lang="VB"> Dim MyAzimuth As New Azimuth(90, True) </code> <code lang="C#"> Azimuth MyAzimuth = new Azimuth(90, True); </code> </example> </member><member name="M:StormSource.Gps.Azimuth.#ctor(StormSource.Gps.Angle)"> <summary>Creates a new instance based on the given Angle object.</summary> <remarks> This method is typically used to "upgrade" an <strong>Angle</strong> object into an <strong>Azimuth</strong> object to take advantage of additional features not available to an angle, such as the <see cref="P:StormSource.Gps.Azimuth.CardinalDirection">CardinalDirection</see> property. </remarks> <param name="angle"> An <strong>Angle</strong> object containing properties for the new <strong>Azimuth</strong> object. </param> </member><member name="M:StormSource.Gps.Azimuth.#ctor(System.Double)"> <summary>Creates a new instance with the specified decimal degrees.</summary> </member><member name="M:StormSource.Gps.Azimuth.#ctor(StormSource.Gps.CardinalDirection)"> <summary>Creates a new instances based on the specified cardinal direction.</summary> <remarks> This constructor converts an in-English cardinal direction into its numeric equivalent. To create an instance from a string value such as "North" or "East-SouthEast," see the <see cref="M:StormSource.Gps.Receiver.Parse(System.String)">Parse</see> method. </remarks> <param name="cardinalDirection"> One of sixteen values from the <see cref="P:StormSource.Gps.Azimuth.CardinalDirection">CardinalDirection</see> enumeration. </param> </member><member name="M:StormSource.Gps.Azimuth.#ctor(System.Int32,System.Int32,System.Double)"> <summary>Creates a new instance with the specified hours, minutes and seconds.</summary> </member><member name="M:StormSource.Gps.Azimuth.#ctor(System.Int32,System.Double)"> <summary>Creates a new instance with the specified hours and decimal minutes.</summary> </member><member name="M:StormSource.Gps.Azimuth.#ctor(System.String)"> <summary> Creates a new instance with the specified hours, minutes and/or seconds in the form of a string. </summary> <param name="value"> <para>A <strong>String</strong> value containing an angular measurement. See the <see cref="M:StormSource.Gps.Azimuth.Parse(System.String)">Parse</see> method for acceptable formats.</para> </param> <remarks> <para>This powerful method is typically used to process data from a data store or a value input by the user. This function can accept any format which can be output by the <see cref="M:StormSource.Gps.Angle.ToString">ToString</see> method.</para> </remarks> </member><member name="P:StormSource.Gps.Azimuth.CurrentBearing"> <summary>Read only. Returns the current direction of travel.</summary> <remarks> This property returns the current direction of travel if it is known by the GPS device. This property is the same as the <see cref="P:StormSource.Gps.Receiver.Bearing">Bearing</see> property of the <see cref="T:StormSource.Gps.Receiver">Receiver</see> class. If the Receiver class is not started, this property will return an azimuth of 0°. </remarks> <value>An <strong>Azimuth</strong> object.</value> <example> This example uses the CurrentBearing property to show the current direction of travel. <code lang="VB"> Debug.WriteLine(Azimuth.CurrentBearing.ToString) </code> <code lang="C#"> Debug.WriteLine(Azimuth.CurrentBearing.ToString()); </code> </example> <seealso cref="P:StormSource.Gps.Azimuth.CurrentMagneticBearing">CurrentMagneticBearing Property</seealso> <seealso cref="P:StormSource.Gps.Receiver.Bearing">Bearing Property (Receiver Class)</seealso> </member><member name="M:StormSource.Gps.Azimuth.Clone"> <summary>Returns a copy of the current instance.</summary> <returns> A new <strong>Azimuth</strong> whose properties match that of the current instance. </returns> <remarks> This method is typically used to make a copy of an azimuth while preserving its original values, or to add an Azimuth into a collection. </remarks> <example> <code lang="VB"> Dim Azimuth1 As New Azimuth(90) Dim Azimuth2 As Azimuth = Azimuth1.Clone </code> <code lang="C#"> Azimuth Azimuth1 = new Azimuth(90); Azimuth Azimuth2 = Azimuth1.Clone(); </code> </example> </member><member name="P:StormSource.Gps.Azimuth.CurrentMagneticBearing"> <summary> Returns the current direction of travel adjusted by the current magnetic variation. </summary> <remarks> This property returns the current true-north-oriented direction of travel into a magnetic-north-oriented direction. This property is typically used to synchronize GPS bearing reports with a magnetic compass. This property is the same as the <see cref="P:StormSource.Gps.Receiver.MagneticBearing">MagneticBearing</see> property of the <see cref="T:StormSource.Gps.Receiver">Receiver</see> class. If the Receiver class is not started, this property will return an azimuth of 0°. </remarks> <value>An <strong>Azimuth</strong> object.</value> <seealso cref="P:StormSource.Gps.Azimuth.CurrentBearing">CurrentBearing Property</seealso> <seealso cref="P:StormSource.Gps.Receiver.MagneticVariation">MagneticVariation Property (Receiver Class)</seealso> <seealso cref="P:StormSource.Gps.Receiver.Bearing">Bearing Property (Receiver Class)</seealso> </member><member name="P:StormSource.Gps.Azimuth.DecimalDegrees"> <summary>Represents hours, minutes and/or seconds as a single numeric value.</summary> <value>A <strong>Double</strong> value.</value> <remarks> This property is typically used when a measurement does not need to be specified as individual hours, minutes and seconds. Changing this property causes the <see cref="E:StormSource.Gps.Angle.DecimalDegreesChanged(System.Object,StormSource.Gps.AngleEventArgs)"> DecimalDegreesChanged</see> event to be raised, and the <see cref="P:StormSource.Gps.Azimuth.Hours">Hours</see>, <see cref="P:StormSource.Gps.Azimuth.Minutes">Minutes</see> and <see cref="P:StormSource.Gps.Azimuth.Seconds">Seconds</see> properties are automatically recalculated. </remarks> <seealso cref="E:StormSource.Gps.Angle.DecimalDegreesChanged(System.Object,StormSource.Gps.AngleEventArgs)">DecimalDegreesChanged Event</seealso> <seealso cref="P:StormSource.Gps.Azimuth.Hours">Hours Property</seealso> <seealso cref="P:StormSource.Gps.Azimuth.Minutes">Minutes Property</seealso> <seealso cref="P:StormSource.Gps.Azimuth.Seconds">Seconds Property</seealso> <example> This example demonstrates how the <see cref="P:StormSource.Gps.Azimuth.DecimalDegrees">DecimalDegrees</see> property re-calculates the Hours, Minutes, DecimalMinutes and Seconds properties automatically. Note how the Hours property is output even though it was not explicitly set to a value. <code lang="VB"> Dim MyAzimuth As New Azimuth() MyAzimuth.DecimalDegrees = 20.5 Debug.WriteLine(MyAzimuth.Hours) ' Output: "20" </code> <code lang="C#"> Azimuth MyAzimuth = new Azimuth(); MyAzimuth.DecimalDegrees = 20.5; Debug.WriteLine(MyAzimuth.Hours); // Output: "20" </code> </example> <exception cref="T:StormSource.Gps.ImmutableObjectException" caption="ImmutableObjectException">Thrown if the object was created with the IsImmutable flag set. This is typically thrown when attempting to modify a shared member.</exception> </member><member name="P:StormSource.Gps.Azimuth.DecimalMinutes"> <summary>Returns the minutes and seconds as a single numeric value.</summary> <seealso cref="P:StormSource.Gps.Azimuth.Minutes">Minutes Property</seealso> <seealso cref="P:StormSource.Gps.Azimuth.DecimalDegrees">DecimalDegrees Property</seealso> <seealso cref="E:StormSource.Gps.Angle.MinutesChanged(System.Object,StormSource.Gps.AngleEventArgs)">MinutesChanged Event</seealso> <seealso cref="E:StormSource.Gps.Angle.SecondsChanged(System.Object,StormSource.Gps.AngleEventArgs)">SecondsChanged Event</seealso> <value>A <strong>Double</strong> value.</value> <remarks> This property is typically used when the hours an minutes of a measurement are known, but not the seconds. Changing this property causes the <see cref="E:StormSource.Gps.Angle.MinutesChanged(System.Object,StormSource.Gps.AngleEventArgs)">MinutesChanged</see> and <see cref="E:StormSource.Gps.Angle.SecondsChanged(System.Object,StormSource.Gps.AngleEventArgs)">SecondsChanged</see> events to be raised, and the <see cref="P:StormSource.Gps.Azimuth.Hours">DecimalDegrees</see> and <see cref="P:StormSource.Gps.Azimuth.Seconds">Seconds</see> properties are automatically recalculated. </remarks> <exception cref="T:StormSource.Gps.ImmutableObjectException" caption="ImmutableObjectException">Thrown if the object was created with the IsImmutable flag set. This is typically thrown when attempting to modify a shared member.</exception> <example> This example demonstrates how setting this property causes the Hours, Minutes, DecimalDegrees and Seconds properties to be recalculated automatically. Note how the Hours property is correct even though it was not explicitly set to a value. <code lang="VB"> ' Create an Azimuth of 20.5° Dim MyAzimuth As New Azimuth() MyAzimuth.DecimalDegrees = 20.5 ' Setting the DecimalMinutes recalculated other properties Debug.WriteLine(MyAzimuth.Minutes) ' Output: "20" </code> <code lang="C#"> // Create an Azimuth of 20.5° Azimuth MyAzimuth = new Azimuth(); MyAzimuth.DecimalMinutes = 20.5; // Setting the DecimalMinutes recalculated other properties Debug.WriteLine(MyAzimuth.Minutes); // Output: "20" </code> </example> </member><member name="P:StormSource.Gps.Azimuth.Hours"> <summary>Returns the integer hours (degrees) portion of an angular measurement.</summary> <seealso cref="E:StormSource.Gps.Angle.HoursChanged(System.Object,StormSource.Gps.AngleEventArgs)">HoursChanged Event</seealso> <seealso cref="P:StormSource.Gps.Azimuth.Minutes">Minutes Property</seealso> <seealso cref="P:StormSource.Gps.Azimuth.Seconds">Seconds Property</seealso> <value>An <strong>Integer</strong> value.</value> <remarks>This property is used in conjunction with the <see cref="P:StormSource.Gps.Azimuth.Minutes">Minutes</see> and <see cref="P:StormSource.Gps.Azimuth.Seconds">Seconds</see> properties to create a <see cref="M:StormSource.Gps.Angle.SetSexagesimal">sexagesimal</see> measurement. Changing this property causes the <see cref="P:StormSource.Gps.Azimuth.DecimalDegrees">DecimalDegrees</see> property to be recalculated to match the decimal representation of the sexagesimal measurement. The <see cref="E:StormSource.Gps.Angle.HoursChanged(System.Object,StormSource.Gps.AngleEventArgs)">HoursChanged</see> event is also Occurs when this property changes. If this property is assigned to a value outside the allowed minimum and maximum, the value will automatically be <see cref="M:StormSource.Gps.Angle.Normalize(System.Double)">normalized</see>. </remarks> <exception cref="T:StormSource.Gps.ImmutableObjectException" caption="ImmutableObjectException">Thrown if the object was created with the IsImmutable flag set. This is typically thrown when attempting to modify a shared member.</exception> <example>This example creates an Azimuth of 45° using the Hours property. <code lang="VB"> Dim MyAzimuth As New Azimuth() MyAzimuth.Hours = 45 </code> <code lang="C#"> Azimuth MyAzimuth = new Azimuth(); MyAzimuth.Hours = 45; </code> </example> </member><member name="P:StormSource.Gps.Azimuth.Minutes"> <summary>Returns the integer minutes portion of an angular measurement.</summary> <seealso cref="E:StormSource.Gps.Angle.MinutesChanged(System.Object,StormSource.Gps.AngleEventArgs)">MinutesChanged Event</seealso> <seealso cref="P:StormSource.Gps.Azimuth.Hours">Hours Property</seealso> <seealso cref="P:StormSource.Gps.Azimuth.Seconds">Seconds Property</seealso> <remarks>This property is used in conjunction with the <see cref="P:StormSource.Gps.Azimuth.Hours">Hours</see> and <see cref="P:StormSource.Gps.Azimuth.Seconds">Seconds</see> properties to create a <see cref="M:StormSource.Gps.Angle.SetSexagesimal">sexagesimal</see> measurement. Changing this property causes the <see cref="P:StormSource.Gps.Azimuth.DecimalDegrees">DecimalDegrees</see> property to be recalculated to match the decimal representation of the sexagesimal measurement. The <see cref="E:StormSource.Gps.Angle.MinutesChanged(System.Object,StormSource.Gps.AngleEventArgs)">MinutesChanged</see> event is also Occurs when this property changes. </remarks> <value>An <strong>Integer</strong>.</value> <exception cref="T:StormSource.Gps.ImmutableObjectException" caption="ImmutableObjectException">Thrown if the object was created with the IsImmutable flag set. This is typically thrown when attempting to modify a shared member.</exception> <example>This example creates an Azimuth of 45°30' (45 degrees, 30 minutes) using the Hours and Minutes properties. <code lang="VB"> Dim MyAzimuth As New Azimuth() MyAzimuth.Hours = 45 MyAzimuth.Minutes = 30 </code> <code lang="C#"> Azimuth MyAzimuth = new Azimuth(); MyAzimuth.Hours = 45; MyAzimuth.Minutes = 30; </code> </example> </member><member name="M:StormSource.Gps.Azimuth.Parse(System.String)"> <summary> Converts an angular measurement in the form of a string into an <strong>Azimuth</strong> object. </summary> <returns>A new <strong>Azimuth</strong> object populated with the specified values.</returns> <remarks> <para>This powerful method is typically used to process data from a data store or a value input by the user. This function can accept any format which can be output by the <see cref="M:StormSource.Gps.Angle.ToString">ToString</see> method.</para> </remarks> <exception cref="T:System.ArgumentNullException" caption="ArgumentNullException">The Parse method requires a decimal or sexagesimal measurement.</exception> <exception cref="T:System.FormatException" caption="FormatException">1. Only the right-most portion of a sexagesimal measurement can be a fractional value. 2. Extra characters were encountered while parsing an angular measurement. Only hours, minutes, and seconds are allowed. 3. The specified text was not fully understood as an angular measurement.</exception> <param name="value"> <para>A <strong>String</strong> in any of the following formats (or variations depending on the local culture):</para> <para> <table cellspacing="0" cols="4" cellpadding="2" width="100%"> <tbody> <tr> <td>hh</td> <td>hh.h</td> <td>hh mm</td> <td>hh mm.mm</td> </tr> <tr> <td>hh mm ss</td> <td>hh mm ss.sss</td> <td></td> <td></td> </tr> <tr> <td>NNE</td> <td>NORTHNORTHEAST</td> <td>NORTH-NORTHEAST</td> <td>NORTH NORTHEAST</td> </tr> <tr> <td>NE</td> <td>NORTHEAST</td> <td>NORTH-EAST</td> <td>NORTH EAST</td> </tr> <tr> <td>ENE</td> <td>EASTNORTHEAST</td> <td>EAST-NORTHEAST</td> <td>EAST NORTHEAST</td> </tr> <tr> <td>E</td> <td>EAST</td> <td>ESE</td> <td>EASTSOUTHEAST</td> </tr> <tr> <td>EAST-SOUTHEAST</td> <td>EAST SOUTHEAST</td> <td>SE</td> <td>SOUTHEAST</td> </tr> <tr> <td>NORTH-EAST</td> <td>NORTH EAST</td> <td>SSE</td> <td>SOUTHSOUTHEAST</td> </tr> <tr> <td>SOUTH-SOUTHEAST</td> <td>SOUTH SOUTHEAST</td> <td>S</td> <td>SOUTH</td> </tr> <tr> <td>SSW</td> <td>SOUTHSOUTHWEST</td> <td>SOUTH-SOUTHWEST</td> <td>SOUTH SOUTHWEST</td> </tr> <tr> <td>SW</td> <td>SOUTHWEST</td> <td>SOUTH-WEST</td> <td>SOUTH WEST</td> </tr> <tr> <td>WSW</td> <td>WESTSOUTHWEST</td> <td>WEST-SOUTHWEST</td> <td>WEST SOUTHWEST</td> </tr> <tr> <td>W</td> <td>WEST</td> <td>WNW</td> <td>WESTNORTHWEST</td> </tr> <tr> <td>WEST-NORTHWEST</td> <td>WEST NORTHWEST</td> <td>NW</td> <td>NORTHWEST</td> </tr> <tr> <td>NORTH-WEST</td> <td>NORTH WEST</td> <td>NNW</td> <td>NORTHNORTHWEST</td> </tr> <tr> <td>NORTH-NORTHWEST</td> <td>NORTH NORTHWEST</td> <td></td> <td></td> </tr> </tbody> </table> </para> <para>Formats are not case-sensitive and any non-numeric character between numbers is considered a delimiter. Thus, a value of <strong>12°34'56.78"</strong> or even <strong>12A34B56.78C</strong> is treated the same as <strong>12 34 56.78</strong>.</para> </param> <seealso cref="M:StormSource.Gps.Angle.ToString">ToString Method</seealso> <example> This example creates a new angular measurement using the Parse method. <code lang="VB"> Dim NewAngle As Angle = Angle.Parse("123.45°") </code> <code lang="C#"> Angle NewAngle = Angle.Parse("123.45°"); </code> </example> </member><member name="P:StormSource.Gps.Azimuth.Seconds"> <summary>Returns the seconds minutes portion of an angular measurement.</summary> <remarks>This property is used in conjunction with the <see cref="P:StormSource.Gps.Azimuth.Hours">Hours</see> and <see cref="P:StormSource.Gps.Azimuth.Minutes">Minutes</see> properties to create a <see cref="M:StormSource.Gps.Angle.SetSexagesimal">sexagesimal</see> measurement. Changing this property causes the <see cref="P:StormSource.Gps.Azimuth.DecimalDegrees">DecimalDegrees</see> property to be recalculated to match the decimal representation of the sexagesimal measurement. The <see cref="E:StormSource.Gps.Angle.SecondsChanged(System.Object,StormSource.Gps.AngleEventArgs)">SecondsChanged</see> event is also Occurs when this property changes. </remarks> <seealso cref="E:StormSource.Gps.Angle.SecondsChanged(System.Object,StormSource.Gps.AngleEventArgs)">SecondsChanged Event</seealso> <seealso cref="P:StormSource.Gps.Azimuth.Hours">Hours Property</seealso> <seealso cref="P:StormSource.Gps.Azimuth.Minutes">Minutes Property</seealso> <value>A <strong>Double</strong> value.</value> <exception cref="T:StormSource.Gps.ImmutableObjectException" caption="ImmutableObjectException">Thrown if the object was created with the IsImmutable flag set. This is typically thrown when attempting to modify a shared member.</exception> <example>This example creates an Azimuth of 45°30'15" (45 degrees, 30 minutes, 15 seconds) using the Hours, Minutes and Seconds properties. <code lang="VB"> Dim MyAzimuth As New Azimuth() MyAzimuth.Hours = 45 MyAzimuth.Minutes = 30 MyAzimuth.Seconds = 15 </code> <code lang="C#"> Azimuth MyAzimuth = new Azimuth(); MyAzimuth.Hours = 45; MyAzimuth.Minutes = 30; MyAzimuth.Seconds = 15; </code> </example> </member><member name="M:StormSource.Gps.Azimuth.Equals(StormSource.Gps.Azimuth)"> <summary> Compares the current instance to another Azimuth object. </summary> </member><member name="M:StormSource.Gps.Azimuth.Equals(StormSource.Gps.Azimuth,System.Int32)"> <summary> Compares the current instance to another Azimuth object using the specified number of digits of precision. </summary> </member><member name="M:StormSource.Gps.Azimuth.Equals(StormSource.Gps.CardinalDirection)"> <summary> Compares the current instance to the specified compass direction. </summary> </member><member name="P:StormSource.Gps.Azimuth.CardinalDirection"> <summary> Returns the current decimal degrees expressed as a compass direction, such as north or northeast. </summary> <remarks>This powerful property converts any azimuthal measurement into a compass direction. For example, an azimuth of 89° points almost exactly to the east, therefore a value of East would be returned by this property. When this property changes, the <see cref="E:StormSource.Gps.Azimuth.CardinalDirectionChanged(System.Object,StormSource.Gps.AzimuthEventArgs)">CardinalDirectionChanged</see> event is raised. </remarks> <example>This example outputs the cardinal direction accosiated with an azimuth of 89°. <code lang="VB"> ' Create an azimuth of 89° Dim MyAzimuth As New Azimuth(89) ' Output its cardinal direction (which is East) Debug.WriteLine(MyAzimuth.CardinalDirection.ToString) </code> <code lang="C#"> // Create an azimuth of 89° Azimuth MyAzimuth = new Azimuth(89); // Output its cardinal direction (which is East) Debug.WriteLine(MyAzimuth.CardinalDirection.ToString()) </code> </example> <value>A value from the <see cref="T:StormSource.Gps.CardinalDirection">CardinalDirection</see> enumeration.</value> <seealso cref="E:StormSource.Gps.Azimuth.CardinalDirectionChanged(System.Object,StormSource.Gps.AzimuthEventArgs)">CardinalDirectionChanged event</seealso> </member><member name="T:StormSource.Gps.Azimuth"> <summary>Represents an angular measurement around the horizon between 0° and 360°.</summary> <remarks> <para>This class is commonly used to represent a direction of travel. For example, the <see cref="P:StormSource.Gps.Receiver.Bearing">Bearing</see> and <see cref="P:StormSource.Gps.Receiver.MagneticBearing">MagneticBearing</see> properties of the <see cref="T:StormSource.Gps.Receiver">Receiver</see> class use an azimuth to show the current direction of travel. An azimuth can also be used in conjunction with a vertical angle (referred to as an "elevation") to create a 3-D direction towards an object in the visible sky, such as a GPS <see cref="T:StormSource.Gps.Satellite">satellite</see>.</para> <para><img src="Azimuth.jpg"/></para> </remarks> <example> Creates an azimuth with a value of 45°. <code lang="VB"> Dim MyAzimuth As New Azimuth(45) </code> <code lang="C#"> Azimuth MyAzimuth = new Azimuth(45); </code> This next example creates a new azimuth equal to direction north-northwest. <code lang="VB"> Dim MyAzimuth As Azimuth = Azimuth.NorthNorthWest </code> <code lang="C#"> Azimuth MyAzimuth = Azimuth.NorthNorthWest; </code> This example demonstrates the powerful CardinalDirection property, which turns a numeric measurement into a compass direction. <code lang="VB"> Dim MyAzimuth As New Azimuth(113) ' Is an azimuth of 113° the same as traveling east-southeast? If MyAzimuth.CardinalDirection = CardinalDirection.EastSouthEast Then ' Yes End If </code> <code lang="C#"> Azimuth MyAzimuth = new Azimuth(113); // Is an azimuth of 113° the same as traveling east-southeast? if (MyAzimuth.CardinalDirection = CardinalDirection.EastSouthEast) { // Yes } </code> This next example demonstrates how an azimuth can be output as a string in any custom format (and international culture). <code lang="VB"> Dim MyAzimuth As Azimuth = Azimuth.SouthEast Debug.WriteLine(MyAzimuth.ToString("dd°mm.mmm'")) </code> <code lang="C#"> Azimuth MyAzimuth = Azimuth.SouthEast; Debug.WriteLine(MyAzimuth.ToString("dd°mm.mmm'")); </code> </example> </member><member name="E:StormSource.Gps.UtmPosition.NorthingChanged(System.Object,StormSource.Gps.UtmPositionEventArgs)"> <summary> Occurs when the <see cref="P:StormSource.Gps.UtmPosition.Northing">Northing</see> property has changed. </summary> </member><member name="E:StormSource.Gps.UtmPosition.EastingChanged(System.Object,StormSource.Gps.UtmPositionEventArgs)"> <summary> Occurs when the <see cref="P:StormSource.Gps.UtmPosition.Easting">Easting</see> property has changed. </summary> </member><member name="E:StormSource.Gps.UtmPosition.ZoneChanged(System.Object,StormSource.Gps.UtmPositionEventArgs)"> <summary> Occurs when the <see cref="P:StormSource.Gps.UtmPosition.Zone">Zone</see> property has changed. </summary> </member><member name="M:StormSource.Gps.UtmPosition.Clone"> <summary>Creates a mutable copy of the current instance.</summary> <returns> A new UtmPosition with the same values for Zone, Northing, Easting and Ellipsoid properties. </returns> <remarks> This method is typically used to make modifications to a position while preserving it's original value. A clone of an immutable (read-only) object becomes mutable (modifiable). </remarks> </member><member name="M:StormSource.Gps.UtmPosition.Equals(StormSource.Gps.UtmZone,System.Double,System.Double)"> <overloads>Compares the equivalence of the current instance with the specified value.</overloads> </member><member name="T:StormSource.Gps.UtmPosition"> <summary> Represents a position on Earth's surface as indicated by a zone, northing and easting. </summary> <remarks> <para>This class is designed to simplify the process of working with Universal Transverse Mercator (or UTM for short) coordinates. UTM coordinates are an effort to simplify navigation and formulas by turning Earth's flattened-sphere shape into square grids. For example, consider the formula used to calculate distance between two UTM coordinates versus between two latitude-longitude coordinates:</para> <para> <list type="table"> <item> <term>Pythagorean Theorem (UTM)</term> <description>Haversine Formula (Lat/Long)</description> </item> <item> <term>c= Sqrt(a * a + b * b)</term> <description>c = 120 * arcsin(sqrt(sin^2((La2-La1)/2) + cos(L2) * cos(L1) * sin^2((Lo2-Lo1)/2)))</description> </item> </list> </para> <para> <para>As you can see, calculations based on flat grid are much simpler than those made over spherical surfaces.</para> <para><img src="BestPractice.jpg"/></para><para><strong>Avoid frequent re-conversion between coordinate systems.</strong></para> <para>During any coordinate conversion, some amount of accuracy, however small, is lost. As a result, conversions to datums and conversions between lat/long to UTM coordinates should be minimized. In addition, a country may be using a particular coordinate system by default. Always try to use the country's native coordinate system.</para> </para> </remarks> </member><member name="E:StormSource.Gps.DifferentialGps.LastUpdateChanged(System.Object,StormSource.Gps.DifferentialGpsEventArgs)"> <summary>Occurs when a ground stations reports updated GPS correction information.</summary> </member><member name="E:StormSource.Gps.DifferentialGps.DifferentialFixObtained(System.Object,StormSource.Gps.DifferentialGpsEventArgs)"> <summary> Occurs when a fix using both satellites and ground stations has been acquired. </summary> </member><member name="E:StormSource.Gps.DifferentialGps.DifferentialFixLost(System.Object,StormSource.Gps.DifferentialGpsEventArgs)"> <summary> Occurs when the active fix using both satellites and ground stations has been lost. </summary> </member><member name="P:StormSource.Gps.DifferentialGps.LastUpdateUtc"> <summary> Returns the date/time (in UTC) when the last DGPS correction information was received. </summary> <value>A <strong>DateTime</strong> object.</value> <remarks> This property is useful for determining when correction information was received by a DGPS ground station. Note that the value is given in UTC and may have to be converted to the local time zone using <strong>DateTime.ToLocalTime</strong>. </remarks> </member><member name="P:StormSource.Gps.DifferentialGps.Age"> <summary> Indicates the age (in seconds) since the last correction information was received. </summary> <value>A <see cref="T:System.TimeSpan">TimeSpan</see> object.</value> <remarks> <para>This property returns the number of seconds elapsed since the DGPS correction (to the current time). This property is most useful for determining the reliability of correction information.</para> </remarks> <seealso cref="P:StormSource.Gps.DifferentialGps.LastUpdateUtc">LastUpdateUtc Property</seealso> </member><member name="P:StormSource.Gps.DifferentialGps.IsActive"> <summary>Indicates if a differential GPS fix is currently active.</summary> <value> A <strong>Boolean</strong> value. Returns <strong>True</strong> if DGPS correction information is being used to calculate current positional information. </value> <remarks> This property is most useful for determining whether DGPS information in this class is valid. If a DGPS fix is lost, the <see cref="P:StormSource.Gps.DifferentialGps.LastUpdateUtc">LastUpdateUtc</see> and <see cref="P:StormSource.Gps.DifferentialGps.Age">Age</see> properties are not cleared out. </remarks> </member><member name="P:StormSource.Gps.DifferentialGps.StationId"> <summary> Returns the unique identifier of a DGPS ground station involved in the current fix. </summary> <value>An <strong>Integer</strong> value between 0 and 1,024.</value> <remarks> <para>Each DGPS ground station transmits a uniquely-identifying code, the same way GPS satellite have their own unique ID's. This property is most useful as a starting point to learn more information about a specific ground station.</para> </remarks> </member><member name="T:StormSource.Gps.DifferentialGps"> <summary> Represents extended information about a GPS fix if ground stations are involved. </summary> <remarks> <para>This class contains information about the DGPS ground station providing correction information to the GPS device. It is only valid when a <see cref="P:StormSource.Gps.Receiver.FixQuality">DGPS fix</see> is currently active. This class is read only and non-creatable.</para> <para><img src="DGPS.jpg"/></para> </remarks> <seealso cref="P:StormSource.Gps.Receiver.FixQuality">FixQuality Property (Receiver)</seealso> </member><member name="F:StormSource.Gps.Distance.EarthsEquatorialRadiusWgs1984"> <summary> Returns the distance from the center of the Earth to the equator according to the WGS1984 ellipsoid. </summary> <remarks> Several geodetic equations use both the equatorial and <see cref="F:StormSource.Gps.Distance.EarthsPolarRadiusWgs1984"> polar radius</see> of the Earth to calculate things such as <see cref="M:StormSource.Gps.Position.DistanceTo(StormSource.Gps.Position)"> distance</see>, <see cref="M:StormSource.Gps.Position.InitialBearingTo(StormSource.Gps.Position)"> bearing</see>, and <see cref="T:StormSource.Gps.MolodenskyTransform"> coordinate system conversions</see>. This fields represents a distance of 6,378,137.0 meters. </remarks> <seealso cref="F:StormSource.Gps.Distance.EarthsPolarRadiusWgs1984">EarthsPolarRadiusWgs1984 Field</seealso> <seealso cref="F:StormSource.Gps.Distance.EarthsAverageRadius">EarthsAverageRadius Field</seealso> </member><member name="F:StormSource.Gps.Distance.EarthsPolarRadiusWgs1984"> <summary> Returns the distance from the center of the Earth to a pole according to the WGS1984 ellipsoid. </summary> <remarks> Several geodetic equations use both the polar and <see cref="F:StormSource.Gps.Distance.EarthsEquatorialRadiusWgs1984"> equatorial radius</see> of the Earth to calculate things such as <see cref="M:StormSource.Gps.Position.DistanceTo(StormSource.Gps.Position)"> distance</see>, <see cref="M:StormSource.Gps.Position.InitialBearingTo(StormSource.Gps.Position)"> bearing</see>, and <see cref="T:StormSource.Gps.MolodenskyTransform">coordinate system conversions</see>. This fields represents a value of 6,356,752.314245 meters. </remarks> <seealso cref="F:StormSource.Gps.Distance.EarthsEquatorialRadiusWgs1984">EarthsEquatorialRadiusWgs1984 Field</seealso> <seealso cref="F:StormSource.Gps.Distance.EarthsAverageRadius">EarthsAverageRadius Field</seealso> </member><member name="F:StormSource.Gps.Distance.EarthsAverageRadius"> <summary>Returns the average radius of the Earth.</summary> <remarks> This field is provided for geodetic equations such as <see cref="M:StormSource.Gps.Position.Translate(StormSource.Gps.Angle,StormSource.Gps.Distance)"> translating a position</see> by a certain distance and bearing. Since the Earth is not a sphere but more of a flattened sphere (known as an "oblate spheroid"), this field is used when a high level of accuracy can still be maintained. This field is equal to 6,378,100 meters. </remarks> <seealso cref="F:StormSource.Gps.Distance.EarthsEquatorialRadiusWgs1984">EarthsEquatorialRadiusWgs1984 Field</seealso> <seealso cref="F:StormSource.Gps.Distance.EarthsPolarRadiusWgs1984">EarthsPolarRadiusWgs1984 Field</seealso> </member><member name="P:StormSource.Gps.Distance.CurrentAltitude"> <summary>Returns the current altitude above sea level.</summary> <value> Read only. A <strong>Distance</strong> object returning the current altitude. </value> <remarks> <para>This shared property allows the current altitude above sea level to be accessed without having to create an instance of a class. This property behaves the same as the <see cref="P:StormSource.Gps.Receiver.Altitude"> Altitude</see> property of the <see href="StormSource.Gps.Receiver">Receiver</see> class.</para> <para>Altitude can also be measured from the ellipsoid instead of sea level. The diagram below shows how altitude above sea level is measured versus altitude above the ellipsoid:</para> <para> <img src="AltitudeAboveWGS84.jpg"/> </para> <para>For more information about ellipsoids, see the <see cref="T:StormSource.Gps.Ellipsoid">Ellipsoid</see> class. For this property to function, an instance of the Receiver class must be collecting data. This property is updated automatically as new information is received from the GPS device.</para> </remarks> <seealso cref="P:StormSource.Gps.Receiver.Altitude">Altitude Property (Receiver)</seealso> <seealso cref="P:StormSource.Gps.Distance.CurrentAltitudeAboveWgs1984">CurrentAltitudeAboveWgs1984 Property</seealso> <example> This example demonstrates how the current altitude can be accessed using the Distance class. <code lang="VB"> ' Output the current altitude above sea level in feet Debug.WriteLine(Distance.CurrentAltitude.ToFeet.ToString()) </code> <code lang="C#"> // Output the current altitude above sea level in feet Debug.WriteLine(Distance.CurrentAltitude.ToFeet.ToString()); </code> </example> <seealso cref="P:StormSource.Gps.Distance.CurrentAltitude">CurrentAltitude Property</seealso> </member><member name="P:StormSource.Gps.Distance.CurrentAltitudeAboveWgs1984"> <summary>Returns the current height above the WGS1984 ellipsoid.</summary> <value>Read only. A <strong>Distance</strong> object.</value> <remarks> <para>For most applications, the distance above sea level is the most common form of altitude. For some specialized geodetic equations, however, the height above an ellipsoid is preferable. The diagram below shows how altitude above sea level is measured versus altitude above the ellipsoid:</para> <para> <img src="AltitudeAboveWGS84.jpg"/> </para> <para>For more information about ellipsoids, see the <see href="Ellipsoid">Ellipsoid</see> class. For this property to function, an instance of the Receiver class must be collecting data. This property is updated automatically as new information is received from the GPS device.</para> </remarks> <example> This example demonstrates how the current altitude can be accessed using the Distance class. <code lang="VB"> ' Output the current altitude above sea level in feet Debug.WriteLine(Distance.CurrentAltitudeAboveWgs1984.ToFeet.ToString()) </code> <code lang="C#"> // Output the current altitude above sea level in feet Debug.WriteLine(Distance.CurrentAltitudeAboveWgs1984.ToFeet.ToString()); </code> </example> <seealso cref="P:StormSource.Gps.Distance.CurrentAltitude">CurrentAltitude Property</seealso> </member><member name="E:StormSource.Gps.Distance.ValueChanged(System.Object,StormSource.Gps.DistanceEventArgs)"> <summary>Occurs when the <see cref="P:StormSource.Gps.Distance.Value">Value</see> property has changed.</summary> <remarks> This event is typically used to provide notification whenever a distance measurement changes. For example, this could be used to be notified whenever the current altitude above sea level changes. </remarks> <example> This example demonstrates one way to be notified when the current altitude changes. <code lang="VB"> Private MyReceiver As New Receiver() Private WithEvents Altitude As Distance = MyReceiver.Altitude ' Occurs when the value property of a distance object changes Private Sub OnAltitudeChanged(ByVal sender As Object, ByVal e As DistanceEventArgs) Handles Altitude.ValueChanged Debug.WriteLine("The current altitude has changed to " & e.Distance.ToFeet.ToString) End Sub </code> <code lang="C#"> Receiver MyReceiver(); Distance Altitude = MyReceiver.Altitude; // Occurs when the value property of a distance object changes void OnAltitudeChanged(Object sender, DistanceEventArgs e) { Debug.WriteLine("The current altitude has changed to " + e.Distance.ToFeet().ToString()); } </code> </example> <seealso cref="E:StormSource.Gps.Distance.UnitsChanged(System.Object,StormSource.Gps.DistanceEventArgs)">UnitsChanged Event</seealso> </member><member name="E:StormSource.Gps.Distance.UnitsChanged(System.Object,StormSource.Gps.DistanceEventArgs)"> <summary>Occurs when the Units property has changed.</summary> <remarks> <para>This event is typically by applications to adjust information as a result of the Units property changing. High-precision applications also use this event to throw an exception if the unit type of a measurement must always stay the same (but does not).</para> <para><img src="BestPractice.jpg"/></para><para><strong>Use conversion methods instead of setting the Units property</strong></para> <para>When the Units property is changed, no conversion is performed on the Value property. This could lead to mathematical errors which are difficult to debug. Use conversion methods such as ToFeet or ToMeters instead.</para> <para> This example demonstrates poor programming when trying to add 100 feet to 100 meters by changing the Units property of the Distance2 object. <code lang="VB"> ' Declare two distances Dim Distance1 As New Distance(50, DistanceUnit.Meters) Dim Distance2 As New Distance(100, DistanceUnit.Feet) ' Store their sum in another variable Dim Distance3 As New Distance(0, DistanceUnit.Meters) ' INCORRECT: Changing Units property does not convert Distance2! Distance2.Units = DistanceUnit.Meters Distance3.Value = Distance1.Value + Distance2.Value </code> <code lang="C#"> // Declare two distances Distance Distance1 = new Distance(50, DistanceUnit.Meters); Distance Distance2 = new Distance(100, DistanceUnit.Feet); // Store their sum in another variable Distance Distance3 = new Distance(0, DistanceUnit.Meters); // INCORRECT: Changing Units property does not convert Distance2! Distance2.Units = DistanceUnit.Meters; Distance3.Value = Distance1.Value + Distance2.Value; </code> The correct technique is to use a conversion method to change the unit type instead of modifying the Units property. <code lang="VB"> ' Declare two distances Dim Distance1 As New Distance(50, DistanceUnit.Meters) Dim Distance2 As New Distance(100, DistanceUnit.Feet) ' Store their sum in another variable Dim Distance3 As New Distance(0, DistanceUnit.Meters) ' CORRECT: The ToMeters method is used to standardize unit types Distance3.Value = Distance1.ToMeters.Value + Distance2.ToMeters.Value </code> <code lang="C#"> // Declare two distances Distance Distance1 = new Distance(50, DistanceUnit.Meters); Distance Distance2 = new Distance(100, DistanceUnit.Feet); // Store their sum in another variable Distance Distance3 = new Distance(0, DistanceUnit.Meters); // CORRECT: The ToMeters method is used to standardize unit types Distance3.Value = Distance1.ToMeters.Value + Distance2.ToMeters.Value; </code> </para> </remarks> <example> This example demonstrates one way to be notified when the current altitude changes. <code lang="VB"> Private MyReceiver As New Receiver() Private WithEvents Altitude As Distance = MyReceiver.Altitude ' Occurs when the value property of a distance object changes Private Sub OnAltitudeChanged(ByVal sender As Object, ByVal e As DistanceEventArgs) Handles Altitude.UnitsChanged Debug.WriteLine("The current altitude has changed to " & e.Distance.ToFeet.ToString) End Sub </code> <code lang="C#"> Receiver MyReceiver(); Distance Altitude = MyReceiver.Altitude; // Occurs when the value property of a distance object changes void OnAltitudeChanged(Object sender, DistanceEventArgs e) { Debug.WriteLine("The current altitude's units have changed to " + e.Distance.ToFeet().ToString()); } </code> </example> <seealso cref="E:StormSource.Gps.Distance.ValueChanged(System.Object,StormSource.Gps.DistanceEventArgs)">ValueChanged Event</seealso> </member><member name="M:StormSource.Gps.Distance.#ctor"> <summary>Creates a new instance with a default value of 0 meters.</summary> <example> This example uses a constructor to create a new distance of zero meters. <code lang="VB"> Dim MyDistance As New Distance() </code> <code lang="C#"> Distance MyDistance = new Distance(); </code> </example> </member><member name="M:StormSource.Gps.Distance.#ctor(System.Double,StormSource.Gps.DistanceUnit)"> <summary>Creates a new instance using the specified value and unit type.</summary> <example> This example uses a constructor to create a new distance of 50km. <code lang="VB"> Dim MyDistance As New Distance(50, DistanceUnit.Kilometers) </code> <code lang="C#"> Distance MyDistance = new Distance(50, DistanceUnit.Kilometers); </code> </example> </member><member name="M:StormSource.Gps.Distance.#ctor(System.Double,StormSource.Gps.DistanceUnit,System.Boolean)"> <summary>Creates a new, immutable instance using the specified value and unit type.</summary> <remarks>An object is considered immutable if it's properties cannot be modified once it is created.</remarks> <example> This example creates an immutable (read-only) distance measurements <code lang="VB"> Public Shared ReadOnly MySharedMember(175, DistanceUnit.Feet, True) </code> <code lang="C#"> public static readonly MySharedMember(175, DistanceUnit.Feet, true); </code> </example> </member><member name="M:StormSource.Gps.Distance.#ctor(System.String)"> <summary>Creates a new instance from the the specified string.</summary> <param name="value"> <para>A <strong>String</strong> in any format accepted by the <see cref="M:StormSource.Gps.Distance.Parse(System.String)">Parse</see> method.</para> </param> <remarks> This powerful constructor is typically used to initialize an instance with a string-based distance measurement, such as one entered by a user or read from a file. This constructor can accept any output created via the <see cref="M:StormSource.Gps.Distance.ToString">ToString</see> method. </remarks> <exception cref="T:System.ArgumentNullException" caption="ArgumentNullException">Parse method requires a valid distance measurement.</exception> <exception cref="T:System.FormatException" caption="FormatException">1. The numeric portion of the distance measurement was not recognized.<br/> 2. The distance unit type was not recognized or not specified.</exception> <example> This example demonstrates how the to use this constructor. <code lang="VB"> Dim MyDistance As Distance ' Create a distance of 50 kilometers MyDistance = New Distance("50 km") ' Create a distance of 14,387 miles, then convert it into inches MyDistance = New Distance("14,387 statute miles").ToInches ' Parse an untrimmed measurement into 50 feet MyDistance = New Distance(" 50 ' ") </code> <code lang="C#"> Distance MyDistance; // Create a distance of 50 kilometers MyDistance = new Distance("50 km"); // Create a distance of 14,387 miles, then convert it into inches MyDistance = new Distance("14,387 statute miles").ToInches; // Parse an untrimmed measurement into 50 feet MyDistance = new Distance(" 50 ' "); </code> </example> </member><member name="M:StormSource.Gps.Distance.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)"> <summary> Creates an instance using deserialized distance information. </summary> <param name="info"></param> <param name="context"></param> </member><member name="M:StormSource.Gps.Distance.Equals(StormSource.Gps.Distance)"> <summary> Compares the current instance to the specified distance object. </summary> <param name="value">A <strong>Distance</strong> object to compare with.</param> <returns>A <strong>Boolean</strong>, True if the values are equivalent.</returns> <remarks>This method compares the current instance to the specified object up to four digits of precision.</remarks> </member><member name="M:StormSource.Gps.Distance.Equals(StormSource.Gps.Distance,System.Int32)"> <summary> Compares the current instance to the specified value, distance units, and precision. </summary> <param name="value">A <strong>Distance</strong> object to compare with.</param> <param name="precision">An <strong>Integer</strong> specifying the number of digits to compare with.</param> <returns>A <strong>Boolean</strong>, True if the values are equivalent.</returns> <remarks>This method compares the current instance to the specified object at up to the specified number of digits of precision.</remarks> </member><member name="M:StormSource.Gps.Distance.Equals(System.Double,StormSource.Gps.DistanceUnit)"> <summary> Compares the current instance to the specified value and distance units. </summary> <param name="value">A <strong>Double</strong> containing a value to compare.</param> <param name="units">A value from the <strong>DistanceUnit</strong> enumeration.</param> <returns>A <strong>Boolean</strong>, True if the values are equivalent.</returns> <remarks>This method compares the current instance to the specified value at up to four digits of precision.</remarks> </member><member name="M:StormSource.Gps.Distance.Equals(System.Double,StormSource.Gps.DistanceUnit,System.Int32)"> <summary> Compares the current instance to the specified value, distance units, and precision. </summary> <param name="value">A <strong>Double</strong> containing a value to compare.</param> <param name="units">A value from the <strong>DistanceUnit</strong> enumeration.</param> <returns>A <strong>Boolean</strong>, True if the values are equivalent.</returns> <remarks>This method compares the current instance to the specified value at up to the specified number of digits of precision.</remarks> </member><member name="M:StormSource.Gps.Distance.Equals(System.Object)"> <summary> Compares the current instance to the specified object. </summary> <param name="value">An <strong>Object</strong> to compare with.</param> <returns>A <strong>Boolean</strong>, True if the values are equivalent.</returns> </member><member name="P:StormSource.Gps.Distance.Units"> <summary>Describes the unit portion of a distance measurement.</summary> <value> A value from the <see cref="T:StormSource.Gps.DistanceUnit">DistanceUnit</see> enumeration. Default is <strong>DistanceUnit.Meters</strong>. </value> <remarks> <para>Each distance measurement is comprised of a numeric <see cref="P:StormSource.Gps.Distance.Value">value</see> and a unit type. This property describes the numeric value so that it may be explicitly identified. An instance of the <strong>Distance</strong> class may have a value of zero, but it is impossible to have an unspecified unit type.</para> <para>Changing this property, either directly or indirectly via a conversion method, causes the <see cref="E:StormSource.Gps.Distance.UnitsChanged(System.Object,StormSource.Gps.DistanceEventArgs)">UnitsChanged</see> event to be raised.</para> <para><img src="BestPractice.jpg"/></para><para><strong>Use conversion methods instead of setting the Units property</strong></para> <para>When the Units property is changed, no conversion is performed on the Value property. This could lead to mathematical errors which are difficult to debug. Use conversion methods such as ToFeet or ToMeters instead.</para> <para> This example demonstrates poor programming when trying to add 100 feet to 100 meters by changing the Units property of the Distance2 object. <code lang="VB"> ' Declare two distances Dim Distance1 As New Distance(50, DistanceUnit.Meters) Dim Distance2 As New Distance(100, DistanceUnit.Feet) ' Store their sum in another variable Dim Distance3 As New Distance(0, DistanceUnit.Meters) ' INCORRECT: Changing Units property does not convert Distance2! Distance2.Units = DistanceUnit.Meters Distance3.Value = Distance1.Value + Distance2.Value </code> <code lang="C#"> // Declare two distances Distance Distance1 = new Distance(50, DistanceUnit.Meters); Distance Distance2 = new Distance(100, DistanceUnit.Feet); // Store their sum in another variable Distance Distance3 = new Distance(0, DistanceUnit.Meters); // INCORRECT: Changing Units property does not convert Distance2! Distance2.Units = DistanceUnit.Meters; Distance3.Value = Distance1.Value + Distance2.Value; </code> The correct technique is to use a conversion method to change the unit type instead of modifying the Units property. <code lang="VB"> ' Declare two distances Dim Distance1 As New Distance(50, DistanceUnit.Meters) Dim Distance2 As New Distance(100, DistanceUnit.Feet) ' Store their sum in another variable Dim Distance3 As New Distance(0, DistanceUnit.Meters) ' CORRECT: The ToMeters method is used to standardize unit types Distance3.Value = Distance1.ToMeters.Value + Distance2.ToMeters.Value </code> <code lang="C#"> // Declare two distances Distance Distance1 = new Distance(50, DistanceUnit.Meters); Distance Distance2 = new Distance(100, DistanceUnit.Feet); // Store their sum in another variable Distance Distance3 = new Distance(0, DistanceUnit.Meters); // CORRECT: The ToMeters method is used to standardize unit types Distance3.Value = Distance1.ToMeters.Value + Distance2.ToMeters.Value; </code> </para> </remarks> <seealso cref="E:StormSource.Gps.Distance.UnitsChanged(System.Object,StormSource.Gps.DistanceEventArgs)">UnitsChanged Event</seealso> <seealso cref="P:StormSource.Gps.Distance.Value">Value Property</seealso> </member><member name="M:StormSource.Gps.Distance.Clone"> <summary>Creates a mutable copy of another distance object.</summary> <remarks>This method is used to easily create a copy of a Distance object without having to set the <see cref="P:StormSource.Gps.Distance.Value">Value</see> and <see cref="P:StormSource.Gps.Distance.Units">Units</see> properties individually. The cloned instance is modifiable (mutable) even if the original instance is immutable.</remarks> <returns>A Distance object with the same Value and Units properties as the original instance.</returns> <example> This example uses the Clone method to copy a Distance object. Changes are then made, and the Clone method is used again to commit changes. <code lang="VB"> ' Define a distance of 50km Dim OriginalDistance As New Distance(50, DistanceUnit.Kilometers) ' Create a copy of the distance Dim ClonedDistance As Distance = OriginalDistance.Clone ' Modify the copy ClonedDistance.Value = 45.75 ' And use the clone method to commit changes to the original instance OriginalDistance = ClonedDistance.Clone </code> <code lang="C#"> // Define a distance of 50km Distance OriginalDistance = new Distance(50, DistanceUnit.Kilometers); // Create a copy of the distance Distance ClonedDistance = OriginalDistance.Clone; // Modify the copy ClonedDistance.Value = 45.75; // And use the clone method to commit changes to the original instance OriginalDistance = ClonedDistance.Clone; </code> </example> </member><member name="P:StormSource.Gps.Distance.IsImmutable"> <summary>Indicates if an angle's properties may be modified.</summary> <returns>An object is considered immutable if it's value(s) cannot be changed. This is set to True for any shared fields in this class.</returns> <remarks> An object is considered "immutable" if it's properties cannot be modified in any way. This property is set when using using the New(Double, DistanceUnit, Boolean) constructor. </remarks> <example> This example can test to see if a Distance object is immutable before attempting to modify its properties. <code lang="VB"> ' Create a new immutable distance of 50m Public Shared ReadOnly MyDistance As New Distance(50, DistanceUnit.Meters, True) ' Can this object be modified? If MyDistance.IsImmutable Then ' No. Do not modify the object or an exception will be thrown Else ' This code will not execute End If </code> <code lang="C#"> // Create a new immutable distance of 50m public static readonly Distance MyDistance = new Distance(50, DistanceUnit.Meters, true); // Can this object be modified? if (MyDistance.IsImmutable) { // No. Do not modify the object or an exception will be thrown } else { // This code will not execute } </code> </example> </member><member name="P:StormSource.Gps.Distance.Value"> <summary>Returns the numeric portion of a distance measurement.</summary> <value>A <strong>Double</strong> value.</value> <remarks> This property is paired with the <see cref="P:StormSource.Gps.Distance.Units">Units</see> property to form a complete distance measurement. When this property changes, the <see cref="E:StormSource.Gps.Distance.ValueChanged(System.Object,StormSource.Gps.DistanceEventArgs)">ValueChanged</see> event is raised. </remarks> <example> This example demonstrates how to use the Value property to modify a distance object. The object is then converted to kilometers. <code lang="VB"> ' Declare a distance of 0 mi. Dim MyDistance As New Distance(0, DistanceUnit.StatuteMiles) ' Change the distance to 100 mi. MyDistance.Value = 100 ' Change the distance to 12.3456 mi. MyDistance.Value = 12.3456 ' Convert the measurement into kilometers MyDistance = MyDistance.ToKilometers </code> <code lang="C#"> // Declare a distance of 0 mi. Distance MyDistance = new Distance(0, DistanceUnit.StatuteMiles); // Change the distance to 100 mi. MyDistance.Value = 100; // Change the distance to 12.3456 mi. MyDistance.Value = 12.3456; // Convert the measurement into kilometers MyDistance = MyDistance.ToKilometers; </code> </example> <seealso cref="E:StormSource.Gps.Distance.ValueChanged(System.Object,StormSource.Gps.DistanceEventArgs)">ValueChanged Event</seealso> <seealso cref="P:StormSource.Gps.Distance.Units">Units Property</seealso> </member><member name="M:StormSource.Gps.Distance.Parse(System.String)"> <summary>Converts a string-based distance measurement into a Distance object.</summary> <remarks> This powerful constructor is typically used to convert a string-based distance measurement, such as one entered by a user or read from a file, into a <strong>Distance</strong> object. This method will accept any output created via the <see cref="M:StormSource.Gps.Distance.ToString">ToString</see> method. </remarks> <param name="value"> <para>A <strong>String</strong> describing a case-insensitive distance measurement, in any of the following formats, where <strong>N</strong> represents a numeric value:</para> <list type="bullet"> <item>N m</item> <item>N meters</item> <item>N meter</item> <item>N metre</item> <item>N metres</item> <item>N km</item> <item>N kilometers</item> <item>N kilometer</item> <item>N kilometre</item> <item>N kilometres</item> <item>N ft</item> <item>N'</item> <item>N foot</item> <item>N feet</item> <item>N in</item> <item>N"</item> <item>N inch</item> <item>N inches</item> <item>N mi</item> <item>N mile</item> <item>N miles</item> <item>N nm</item> <item>N nautical mile</item> <item>N nautical miles</item> </list> </param> <returns> A new Distance object containing the parsed <see cref="P:StormSource.Gps.Distance.Value">value</see> and <see cref="P:StormSource.Gps.Distance.Units">unit</see> type. </returns> <exception cref="T:System.ArgumentNullException" caption="ArgumentNullException">Parse method requires a valid distance measurement.</exception> <exception cref="T:System.FormatException" caption="FormatException">1. The numeric portion of the distance measurement was not recognized.<br/> 2. The distance unit type was not recognized or not specified.</exception> <example> This example demonstrates how the Parse method can convert several string formats into a Distance object. <code lang="VB"> Dim NewDistance As Distance ' Create a distance of 50 kilometers NewDistance = Distance.Parse("50 km") ' Create a distance of 14,387 miles, then convert it into inches NewDistance = Distance.Parse("14,387 statute miles").ToInches ' Parse an untrimmed measurement into 50 feet NewDistance = Distance.Parse(" 50 ' ") </code> <code lang="C#"> Distance NewDistance; // Create a distance of 50 kilometers NewDistance = Distance.Parse("50 km"); // Create a distance of 14,387 miles, then convert it into inches NewDistance = Distance.Parse("14,387 statute miles").ToInches; // Parse an untrimmed measurement into 50 feet NewDistance = Distance.Parse(" 50 ' "); </code> </example> </member><member name="M:StormSource.Gps.Distance.ToFeet"> <summary>Converts the current measurement into feet.</summary> <returns>A new <strong>Distance</strong> object containing the converted value.</returns> <remarks> This method will perform a conversion into feet regardless of the current unit type. You may convert from any unit type to any unit type. </remarks> <seealso cref="M:StormSource.Gps.Distance.ToInches">ToInches Method</seealso> <seealso cref="M:StormSource.Gps.Distance.ToKilometers">ToKilometers Method</seealso> <seealso cref="M:StormSource.Gps.Distance.ToMeters">ToMeters Method</seealso> <seealso cref="M:StormSource.Gps.Distance.ToNauticalMiles">ToNauticalMiles Method</seealso> <seealso cref="M:StormSource.Gps.Distance.ToStatuteMiles">ToStatuteMiles Method</seealso> <example> This example converts various distances into feet. Note that the ToFeet method converts distances from any source type. <code lang="VB"> ' Create distances of different unit types Dim Distance1 As New Distance(10, DistanceUnit.Inches) Dim Distance2 As New Distance(20, DistanceUnit.StatuteMiles) Dim Distance3 As New Distance(50, DistanceUnit.Kilometers) ' Convert the distance measurements to feet and output the result Debug.WriteLine(Distance1.ToFeet.ToString) Debug.WriteLine(Distance2.ToFeet.ToString) Debug.WriteLine(Distance3.ToFeet.ToString) </code> <code lang="C#"> // Create distances of different unit types Distance Distance1 = new Distance(10, DistanceUnit.Inches); Distance Distance2 = new Distance(20, DistanceUnit.StatuteMiles); Distance Distance3 = new Distance(50, DistanceUnit.Kilometers); // Convert the distance measurements to feet and output the result Debug.WriteLine(Distance1.ToFeet().ToString()); Debug.WriteLine(Distance2.ToFeet().ToString()); Debug.WriteLine(Distance3.ToFeet().ToString()); </code> </example> </member><member name="M:StormSource.Gps.Distance.ToInches"> <summary>Converts the current measurement into inches.</summary> <returns>A new <strong>Distance</strong> object containing the converted value.</returns> <remarks> This method will perform a conversion into feet regardless of the current unit type. You may convert from any unit type to any unit type. </remarks> <example> This example converts various distances into inches. Note that the ToInches method converts distances from any source type. <code lang="VB"> ' Create distances of different unit types Dim Distance1 As New Distance(10, DistanceUnit.Feet) Dim Distance2 As New Distance(20, DistanceUnit.StatuteMiles) Dim Distance3 As New Distance(50, DistanceUnit.Kilometers) ' Convert the distance measurements to feet and output the result Debug.WriteLine(Distance1.ToInches.ToString) Debug.WriteLine(Distance2.ToInches.ToString) Debug.WriteLine(Distance3.ToInches.ToString) </code> <code lang="C#"> // Create distances of different unit types Distance Distance1 = new Distance(10, DistanceUnit.Feet); Distance Distance2 = new Distance(20, DistanceUnit.StatuteMiles); Distance Distance3 = new Distance(50, DistanceUnit.Kilometers); // Convert the distance measurements to feet and output the result Debug.WriteLine(Distance1.ToInches().ToString()); Debug.WriteLine(Distance2.ToInches().ToString()); Debug.WriteLine(Distance3.ToInches().ToString()); </code> </example> <seealso cref="M:StormSource.Gps.Distance.ToFeet">ToFeet Method</seealso> <seealso cref="M:StormSource.Gps.Distance.ToKilometers">ToKilometers Method</seealso> <seealso cref="M:StormSource.Gps.Distance.ToMeters">ToMeters Method</seealso> <seealso cref="M:StormSource.Gps.Distance.ToNauticalMiles">ToNauticalMiles Method</seealso> <seealso cref="M:StormSource.Gps.Distance.ToStatuteMiles">ToStatuteMiles Method</seealso> </member><member name="M:StormSource.Gps.Distance.ToKilometers"> <returns>A new <strong>Distance</strong> object containing the converted value.</returns> <remarks> This method will perform a conversion into feet regardless of the current unit type. You may convert from any unit type to any unit type. </remarks> <summary>Converts the current measurement into kilometers.</summary> <example> This example converts various distances into kilometers. Note that the ToKilometers method converts distances from any source type. <code lang="VB"> ' Create distances of different unit types Dim Distance1 As New Distance(10, DistanceUnit.Feet) Dim Distance2 As New Distance(20, DistanceUnit.StatuteMiles) Dim Distance3 As New Distance(50, DistanceUnit.Inches) ' Convert the distance measurements to feet and output the result Debug.WriteLine(Distance1.ToKilometers.ToString) Debug.WriteLine(Distance2.ToKilometers.ToString) Debug.WriteLine(Distance3.ToKilometers.ToString) </code> <code lang="C#"> // Create distances of different unit types Distance Distance1 = new Distance(10, DistanceUnit.Feet); Distance Distance2 = new Distance(20, DistanceUnit.StatuteMiles); Distance Distance3 = new Distance(50, DistanceUnit.Inches); // Convert the distance measurements to feet and output the result Debug.WriteLine(Distance1.ToKilometers().ToString()); Debug.WriteLine(Distance2.ToKilometers().ToString()); Debug.WriteLine(Distance3.ToKilometers().ToString()); </code> </example> <seealso cref="M:StormSource.Gps.Distance.ToFeet">ToFeet Method</seealso> <seealso cref="M:StormSource.Gps.Distance.ToInches">ToInches Method</seealso> <seealso cref="M:StormSource.Gps.Distance.ToMeters">ToMeters Method</seealso> <seealso cref="M:StormSource.Gps.Distance.ToNauticalMiles">ToNauticalMiles Method</seealso> <seealso cref="M:StormSource.Gps.Distance.ToStatuteMiles">ToStatuteMiles Method</seealso> </member><member name="M:StormSource.Gps.Distance.ToMeters"> <returns>A new <strong>Distance</strong> object containing the converted value.</returns> <remarks> This method will perform a conversion into feet regardless of the current unit type. You may convert from any unit type to any unit type. </remarks> <summary>Converts the current measurement into meters.</summary> <example> This example converts various distances into meters. Note that the ToMeters method converts distances from any source type. <code lang="VB"> ' Create distances of different unit types Dim Distance1 As New Distance(10, DistanceUnit.Feet) Dim Distance2 As New Distance(20, DistanceUnit.StatuteMiles) Dim Distance3 As New Distance(50, DistanceUnit.Inches) ' Convert the distance measurements to feet and output the result Debug.WriteLine(Distance1.ToMeters.ToString) Debug.WriteLine(Distance2.ToMeters.ToString) Debug.WriteLine(Distance3.ToMeters.ToString) </code> <code lang="C#"> // Create distances of different unit types Distance Distance1 = new Distance(10, DistanceUnit.Feet); Distance Distance2 = new Distance(20, DistanceUnit.StatuteMiles); Distance Distance3 = new Distance(50, DistanceUnit.Inches); // Convert the distance measurements to feet and output the result Debug.WriteLine(Distance1.ToMeters().ToString()); Debug.WriteLine(Distance2.ToMeters().ToString()); Debug.WriteLine(Distance3.ToMeters().ToString()); </code> </example> <seealso cref="M:StormSource.Gps.Distance.ToFeet">ToFeet Method</seealso> <seealso cref="M:StormSource.Gps.Distance.ToInches">ToInches Method</seealso> <seealso cref="M:StormSource.Gps.Distance.ToKilometers">ToKilometers Method</seealso> <seealso cref="M:StormSource.Gps.Distance.ToNauticalMiles">ToNauticalMiles Method</seealso> <seealso cref="M:StormSource.Gps.Distance.ToStatuteMiles">ToStatuteMiles Method</seealso> </member><member name="M:StormSource.Gps.Distance.ToNauticalMiles"> <returns>A new <strong>Distance</strong> object containing the converted value.</returns> <remarks> This method will perform a conversion into feet regardless of the current unit type. You may convert from any unit type to any unit type. </remarks> <summary>Converts the current measurement into nautical miles.</summary> <example> This example converts various distances into nautical miles. Note that the ToNauticalMiles method converts distances from any source type. <code lang="VB"> ' Create distances of different unit types Dim Distance1 As New Distance(10, DistanceUnit.Feet) Dim Distance2 As New Distance(20, DistanceUnit.StatuteMiles) Dim Distance3 As New Distance(50, DistanceUnit.Inches) ' Convert the distance measurements to feet and output the result Debug.WriteLine(Distance1.ToNauticalMiles.ToString) Debug.WriteLine(Distance2.ToNauticalMiles.ToString) Debug.WriteLine(Distance3.ToNauticalMiles.ToString) </code> <code lang="C#"> // Create distances of different unit types Distance Distance1 = new Distance(10, DistanceUnit.Feet); Distance Distance2 = new Distance(20, DistanceUnit.StatuteMiles); Distance Distance3 = new Distance(50, DistanceUnit.Inches); // Convert the distance measurements to feet and output the result Debug.WriteLine(Distance1.ToNauticalMiles().ToString()); Debug.WriteLine(Distance2.ToNauticalMiles().ToString()); Debug.WriteLine(Distance3.ToNauticalMiles().ToString()); </code> </example> <seealso cref="M:StormSource.Gps.Distance.ToFeet">ToFeet Method</seealso> <seealso cref="M:StormSource.Gps.Distance.ToInches">ToInches Method</seealso> <seealso cref="M:StormSource.Gps.Distance.ToKilometers">ToKilometers Method</seealso> <seealso cref="M:StormSource.Gps.Distance.ToMeters">ToMeters Method</seealso> <seealso cref="M:StormSource.Gps.Distance.ToStatuteMiles">ToStatuteMiles Method</seealso> </member><member name="M:StormSource.Gps.Distance.ToStatuteMiles"> <returns>A new <strong>Distance</strong> object containing the converted value.</returns> <remarks> This method will perform a conversion into feet regardless of the current unit type. You may convert from any unit type to any unit type. </remarks> <summary>Converts the current measurement into miles.</summary> <example> This example converts various distances into statute miles. Note that the ToStatuteMiles method converts distances from any source type. <code lang="VB"> ' Create distances of different unit types Dim Distance1 As New Distance(10, DistanceUnit.Feet) Dim Distance2 As New Distance(20, DistanceUnit.StatuteMiles) Dim Distance3 As New Distance(50, DistanceUnit.Inches) ' Convert the distance measurements to feet and output the result Debug.WriteLine(Distance1.ToStatuteMiles.ToString) Debug.WriteLine(Distance2.ToStatuteMiles.ToString) Debug.WriteLine(Distance3.ToStatuteMiles.ToString) </code> <code lang="C#"> // Create distances of different unit types Distance Distance1 = new Distance(10, DistanceUnit.Feet); Distance Distance2 = new Distance(20, DistanceUnit.StatuteMiles); Distance Distance3 = new Distance(50, DistanceUnit.Inches); // Convert the distance measurements to feet and output the result Debug.WriteLine(Distance1.ToStatuteMiles().ToString()); Debug.WriteLine(Distance2.ToStatuteMiles().ToString()); Debug.WriteLine(Distance3.ToStatuteMiles().ToString()); </code> </example> <seealso cref="M:StormSource.Gps.Distance.ToFeet">ToFeet Method</seealso> <seealso cref="M:StormSource.Gps.Distance.ToInches">ToInches Method</seealso> <seealso cref="M:StormSource.Gps.Distance.ToKilometers">ToKilometers Method</seealso> <seealso cref="M:StormSource.Gps.Distance.ToMeters">ToMeters Method</seealso> <seealso cref="M:StormSource.Gps.Distance.ToNauticalMiles">ToNauticalMiles Method</seealso> </member><member name="M:StormSource.Gps.Distance.ToString"> <summary> Outputs the current instance as a string using the default format. </summary> <returns>A <strong>String</strong> containing the current distance in the default format.</returns> <remarks>The default format used is "##0.## uu" where <strong>uu</strong> is the distance unit type. The numeric format may vary depending on the machine's local culture.</remarks> <example> This example uses the ToString method to populate a TextBox with a distance measurement. <code lang="VB"> ' Declare a distance of 75 miles Dim MyDistance As New Distance(75, DistanceUnit.StatuteMiles) ' Set the text box to the distance, formatted as a string MyTextBox.Text = MyDistance.ToString </code> <code lang="C#"> // Declare a distance of 75 miles Distance MyDistance = new Distance(75, DistanceUnit.StatuteMiles); // Set the text box to the distance, formatted as a string MyTextBox.Text = MyDistance.ToString(); </code> </example> </member><member name="M:StormSource.Gps.Distance.ToString(System.String)"> <summary> Outputs the current instance as a string using the specified format. </summary> <returns>A <strong>String</strong> containing the distance in the specified format.</returns> <param name="format"> <para>A combination of symbols, spaces, and any of the following case-insensitive letters: <strong>#</strong> or <strong>0</strong> for the value property, and <strong>U</strong> for distance units. Here are some examples:</para> <para> <table cellspacing="0" cols="3" cellpadding="2" width="100%"> <tr> <td>##0.## uu</td> <td>## uuuu</td> <td># u</td> <td>###</td> </tr> </table> </para> </param> <remarks>This method allows a custom format to be applied to the ToString method. Numeric formats will be adjusted to the machine's local UI culture.</remarks> <example> This example uses the ToString method to populate a TextBox with a distance measurement using a custom format. <code lang="VB"> ' Declare a distance of 75 miles Dim MyDistance As New Distance(75, DistanceUnit.StatuteMiles) ' Set the text box to the distance, formatted as a string MyTextBox.Text = MyDistance.ToString("## uuu") </code> <code lang="C#"> // Declare a distance of 75 miles Distance MyDistance = new Distance(75, DistanceUnit.StatuteMiles); // Set the text box to the distance, formatted as a string MyTextBox.Text = MyDistance.ToString("## uuu"); </code> </example> </member><member name="M:StormSource.Gps.Distance.ToString(System.String,System.IFormatProvider)"> <summary> Outputs the current instance as a string using the specified format and local culture. </summary> <returns>A <strong>String</strong> containing the distance in the specified format.</returns> <param name="format"> <para>A combination of symbols, spaces, and any of the following case-insensitive letters: <strong>#</strong> or <strong>0</strong> for the value property, and <strong>U</strong> for distance units. Here are some examples:</para> <para> <table cellspacing="0" cols="3" cellpadding="2" width="100%"> <tr> <td>##0.## uu</td> <td>## uuuu</td> <td># u</td> <td>###</td> </tr> </table> </para> </param> <param name="formatProvider"> Information about the culture to apply to the numeric format. </param> <remarks>This method allows a custom format to be applied to the ToString method. Numeric formats will be adjusted to the machine's local UI culture.</remarks> <example> This example uses the ToString method to populate a TextBox with a distance measurement using a custom format and culture information. <code lang="VB"> ' Declare a distance of 75 miles Dim MyDistance As New Distance(75, DistanceUnit.StatuteMiles) ' Set the text box to the distance, formatted as a string MyTextBox.Text = MyDistance.ToString("## uuu", CultureInfo.CurrentUICulture) </code> <code lang="C#"> // Declare a distance of 75 miles Distance MyDistance = new Distance(75, DistanceUnit.StatuteMiles); // Set the text box to the distance, formatted as a string MyTextBox.Text = MyDistance.ToString("## uuu", CultureInfo.CurrentUICulture); </code> </example> </member><member name="T:StormSource.Gps.Distance"> <summary> Represents the measurement of a straight between between two points on Earth's surface. </summary> <remarks> <para>The <strong>Distance</strong> class is utilized by the GPS service any time a distance measurement needed, such as the <see cref="P:StormSource.Gps.Distance.CurrentAltitude">current altitude</see>. Measurements can be converted to either English or Metric system measurements of <see cref="M:StormSource.Gps.Distance.ToStatuteMiles">statute miles</see>, <see cref="M:StormSource.Gps.Distance.ToNauticalMiles">nautical miles</see>, <see cref="M:StormSource.Gps.Distance.ToKilometers">kilometers</see>, <see cref="M:StormSource.Gps.Distance.ToMeters">meters</see>, <see cref="M:StormSource.Gps.Distance.ToFeet">feet</see>, and <see cref="M:StormSource.Gps.Distance.ToInches">inches</see>.</para> <para><img src="Distance.jpg"/></para> <para><img src="BestPractice.jpg"/></para><para><strong>Standardize unit type before modifying the Value property</strong></para> <para>On September 23, 1999, NASA's Mars Climate Orbiter spacecraft broke up as it entered the Mars atmosphere because of confusion between metric and English distance units. Always use a unit conversion method such as <see cref="M:StormSource.Gps.Distance.ToMeters">ToMeters</see> to make all distance unit types the same before performing any math operations. (See examples)</para> <para> The following code is incorrect because it disregards the unit type of each distance measurement. <code lang="VB"> ' Perform math on two distance measurements Dim Distance1 As New Distance(50, DistanceUnit.Meters) Dim Distance2 As New Distance(100, DistanceUnit.StatuteMiles) Dim Distance3 As New Distance(0, DistanceUnit.Meters) ' INCORRECT: The result stored is 150 meters, which is wrong Distance3.Value = Distance1.Value + Distance2.Value </code> <code lang="C#"> // Perform math on two distance measurements Distance Distance1 = new Distance(50, DistanceUnit.Meters); Distance Distance2 = new Distance(100, DistanceUnit.StatuteMiles); Distance Distance3 = new Distance(0, DistanceUnit.Meters); // INCORRECT: The result stored is 150 meters, which is wrong Distance3.Value = Distance1.Value + Distance2.Value; </code> The correct technique is to use a conversion method to standardize the unit types before performing mathematics: <code lang="VB"> ' Perform math on two distance measurements Dim Distance1 As New Distance(50, DistanceUnit.Meters) Dim Distance2 As New Distance(100, DistanceUnit.StatuteMiles) Dim Distance3 As New Distance(0, DistanceUnit.Meters) ' CORRECT: Distances are converted to meters and THEN added together Distance3.Value = Distance1.ToMeters.Value + Distance2.ToMeters.Value </code> <code lang="C#"> // Perform math on two distance measurements Distance Distance1 = new Distance(50, DistanceUnit.Meters); Distance Distance2 = new Distance(100, DistanceUnit.StatuteMiles); Distance Distance3 = new Distance(0, DistanceUnit.Meters); // CORRECT: Distances are converted to meters and THEN added together Distance3.Value = Distance1.ToMeters.Value + Distance2.ToMeters.Value; </code> </para> <para><img src="BestPractice.jpg"/></para><para><strong>Try to perform conversions using the original measurement whenever possible</strong></para> <para>When a conversion method is called, a tiny amount of accuracy is lost. Repetitive conversions would compound this loss of accuracy unless the conversions were made from the original distance measurement.</para> </remarks> <example> This example demonstrates how to create and work with distance measurements. <code lang="VB"> ' Declare a distance of 50 meters Dim Distance1 As New Distance(50, DistanceUnit.Meters) ' Convert it into meters Dim Distance2 As Distance = Distance2.ToMeters </code> <code lang="C#"> // Declare a distance of 50 meters Distance Distance1 = new Distance(50, DistanceUnit.Meters); // Convert it into meters Distance Distance2 = Distance2.ToMeters(); </code> </example> </member><member name="T:StormSource.Gps.MolodenskyTransform"> <summary> Represents information about a three-parameter Molodensky transform. </summary> <remarks> <para>Molodensky transformations are used to convert one coordinate to another localized coordinate system. While Molodensky transforms are considered to be a more low-accuracy conversion, they can be performed to within a few meters of accuracy, plus estimated accuracy is part of each transform.</para> <para>NOTE: More common grid-based conversions are scheduled to be part of the next release of GPS.NET (version 1.5).</para> </remarks> <seealso cref="T:StormSource.Gps.Geodesy">Geodesy Class</seealso> </member><member name="F:StormSource.Gps.Angle.Minimum"> <summary>Represents the minimum allowed value for an angular measurement.</summary> <remarks> This member is typically used for looping through the entire range of possible angles, or to test the range of a value. This member is immutable, meaning that its properties cannot be modified. </remarks> <example> This example creates an angle representing the minimum allowed value of 0°. <code lang="VB"> Dim MyAngle As Angle = Angle.Minimum </code> <code lang="C#"> Angle MyAngle = Angle.Minimum; </code> </example> </member><member name="F:StormSource.Gps.Angle.Maximum"> <summary>Represents the maximum allowed value for an angular measurement.</summary> <remarks> This member is typically used for looping through the entire range of possible angles, or to test the range of a value. This member is immutable, meaning that its properties cannot be modified. </remarks> <example> This example creates an angle representing the maximum allowed value of 359.9999°. <code lang="VB"> Dim MyAngle As Angle = Angle.Maximum </code> <code lang="C#"> Angle MyAngle = Angle.Maximum; </code> </example> </member><member name="M:StormSource.Gps.Angle.Normalize(System.Double)"> <summary>Modifies a value so that it lies between 0° and 360°.</summary> <returns>A <strong>Double</strong> representing the normalized angle.</returns> <remarks> <para>This function is used to ensure that an angular measurement is within the allowed bounds of 0° and 360°. If a value of 360° or 720° is passed, a value of 0° is returned since 360° and 720° represent the same point on a circle. For the Angle class, this function is the same as "value Mod 360".</para> <para><em>NOTE: Normalization is performed automatically when assigning a new value to the <see cref="P:StormSource.Gps.Angle.DecimalDegrees">DecimalDegrees</see> or <see cref="P:StormSource.Gps.Angle.Hours">Hours</see> property.</em></para> </remarks> <param name="value">An angular measurement in decimal degrees.</param> <seealso cref="M:StormSource.Gps.Angle.Normalize(System.Double)">Normalize(Angle) Method</seealso> <example> This example demonstrates how normalization is performed automatically during construction. The Stop statement is hit. <code lang="VB"> Dim MyAngle As New Angle(720) If MyAngle.DecimalDegrees = 0 Then Stop </code> <code lang="C#"> Angle MyAngle = new Angle(720); if (MyAngle.DecimalDegrees == 0) { Debug.WriteLine("Decimal degrees was normalized from 720 to 0."); } </code> This example demonstrates how the Normalize method can ensure that an angle fits between 0° and 359.9999°. This example normalizes 725° into 5°. <code lang="VB"> Dim MyValue As Double = Angle.Normalize(725) </code> <code lang="C#"> double MyValue = Angle.Normalize(725); </code> </example> </member><member name="E:StormSource.Gps.Angle.DecimalDegreesChanged(System.Object,StormSource.Gps.AngleEventArgs)"> <summary>Occurs when the <see cref="P:StormSource.Gps.Angle.DecimalDegrees">DecimalDegrees</see> property has changed. </summary> <seealso cref="P:StormSource.Gps.Angle.DecimalDegrees">DecimalDegrees Property</seealso> <example> This example demonstrates how to be notified when a degree value changes. <code lang="VB"> Private WithEvents MyAngle As New Angle() Sub Test() MyAngle.DecimalDegrees = 45 End Sub Private Sub OnDecimalDegreesChanged(ByVal sender As Object, ByVal e As AngleEventArgs) Handles Angle.DecimalDegreesChanged Debug.WriteLine("Decimal degrees have changed.") End Sub </code> </example> <remarks> This event is typically used when an application must closely watch the value of an angular measurement. </remarks> </member><member name="E:StormSource.Gps.Angle.HoursChanged(System.Object,StormSource.Gps.AngleEventArgs)"> <summary>Occurs when the <see cref="P:StormSource.Gps.Angle.Hours">Hours</see> property has changed.</summary> <seealso cref="P:StormSource.Gps.Angle.Hours">Hours Property</seealso> <example> This example demonstrates how to be notified if the hours portion of an angular measurement changes. <code lang="VB"> Private WithEvents MyAngle As New Angle() Sub Test() MyAngle.Hours = 45 End Sub Private Sub OnHoursChanged(ByVal sender As Object, ByVal e As AngleEventArgs) Handles Angle.HoursChanged Debug.WriteLine("Hours have changed.") End Sub </code> </example> <remarks> This event is typically used when an application must closely watch the value of an angular measurement. </remarks> </member><member name="E:StormSource.Gps.Angle.MinutesChanged(System.Object,StormSource.Gps.AngleEventArgs)"> <summary>Occurs when the <see cref="P:StormSource.Gps.Angle.Minutes">Minutes</see> property has changed.</summary> <seealso cref="P:StormSource.Gps.Angle.Minutes">Minutes Property</seealso> <example> This example demonstrates how to be notified if the minutes portion of an angular measurement changes. <code lang="VB"> Private WithEvents MyAngle As New Angle() Sub Test() MyAngle.Minutes = 45 End Sub Private Sub OnMinutesChanged(ByVal sender As Object, ByVal e As AngleEventArgs) Handles Angle.MinutesChanged Debug.WriteLine("Minutes have changed.") End Sub </code> </example> <remarks> This event is typically used when an application must closely watch the value of an angular measurement. </remarks> </member><member name="E:StormSource.Gps.Angle.SecondsChanged(System.Object,StormSource.Gps.AngleEventArgs)"> <summary>Occurs when the <see cref="P:StormSource.Gps.Angle.Seconds">Seconds</see> property has changed.</summary> <seealso cref="P:StormSource.Gps.Angle.Seconds">Seconds Property</seealso> <example> This example demonstrates how to be notified if the seconds portion of an angular measurement changes. <code lang="VB"> Private WithEvents MyAngle As New Angle() Sub Test() MyAngle.Seconds = 45 End Sub Private Sub OnSecondsChanged(ByVal sender As Object, ByVal e As AngleEventArgs) Handles Angle.SecondsChanged Debug.WriteLine("Seconds have changed.") End Sub </code> </example> <remarks> This event is typically used when an application must closely watch the value of an angular measurement. </remarks> </member><member name="M:StormSource.Gps.Angle.#ctor"> <summary>Creates a new instance with a default value of 0°.</summary> <example> This example creates a new instance with a default value of 0°. <code lang="VB"> Dim MyAngle As New Angle() </code> <code lang="C#"> Angle MyAngle = new Angle(); </code> </example> </member><member name="M:StormSource.Gps.Angle.#ctor(System.Double,System.Boolean)"> <summary> Creates a new, immutable instance with the specified decimal degrees. </summary> <param name="value">A <strong>Double</strong> value to store in the DecimalDegrees property.</param> <param name="isImmutable">A <strong>Boolean</strong>, <strong>True</strong> if the instance should be read-only.</param> <remarks>This constructor is typically used when developers need to create static (<strong>Shared</strong> in Visual Basic) angular measurements.</remarks> <example> This example creates a new immutable instance of 45°. <code lang="VB"> Dim MyAngle As New Angle(45, True) </code> <code lang="C#"> Angle MyAngle = new Angle(45, true); </code> </example> </member><member name="M:StormSource.Gps.Angle.#ctor(System.Double)"> <summary>Creates a new instance with the specified decimal degrees.</summary> <param name="value">A value to set in the <see cref="P:StormSource.Gps.Angle.DecimalDegrees">DecimalDegrees property</see>.</param> <example> This example demonstrates how to create an angle with a measurement of 90°. <code lang="VB"> Dim MyAngle As New Angle(90) </code> <code lang="C#"> Angle MyAngle = new Angle(90); </code> </example> </member><member name="M:StormSource.Gps.Angle.#ctor(System.Int32,System.Int32,System.Double)"> <summary>Creates a new instance with the specified hours, minutes and seconds.</summary> <param name="hours">An <strong>Integer</strong> value to assign to the <see cref="P:StormSource.Gps.Angle.Hours">Hours</see> property. </param> <param name="minutes"> An <strong>Integer</strong> value to assign to the <see cref="P:StormSource.Gps.Angle.Minutes">Minutes</see> property. </param> <param name="seconds"> A <strong>Double</strong> value to assign to the <see cref="P:StormSource.Gps.Angle.Seconds">Seconds</see> property. </param> <example> This example demonstrates how to create an angular measurement of 34°12'29.2 in hours, minutes and seconds. <code lang="VB"> Dim MyAngle As New Angle(34, 12, 29.2) </code> <code lang="C#"> Angle MyAngle = new Angle(34, 12, 29.2); </code> </example> </member><member name="M:StormSource.Gps.Angle.#ctor(System.Int32,System.Double)"> <summary>Creates a new instance with the specified hours and decimal minutes.</summary> <param name="hours">An <strong>Integer</strong> value to assign to the <see cref="P:StormSource.Gps.Angle.Hours">Hours</see> property. </param> <param name="minutes"> A <strong>Double</strong> value to assign to the <see cref="P:StormSource.Gps.Angle.DecimalMinutes">DecimalMinutes</see> property. </param> <example> This example demonstrates how an angle can be created when only the hours and minutes (in decimal form) are known. This creates a value of 12°42.345'. <code lang="VB"> Dim MyAngle As New Angle(12, 42.345) </code> <code lang="VB"> Angle MyAngle = new Angle(12, 42.345); </code> </example> </member><member name="M:StormSource.Gps.Angle.#ctor(System.String)"> <summary>Creates a new instance with the specified hours, minutes and/or seconds in the form of a string. </summary> <remarks> This constructor causes the <see cref="M:StormSource.Gps.Angle.Parse(System.String)">Parse</see> function to be called. If the parsing succeeds, the <see cref="P:StormSource.Gps.Angle.Hours">Hours</see>, <see cref="P:StormSource.Gps.Angle.Minutes">Minutes</see>, and/or <see cref="P:StormSource.Gps.Angle.Seconds">Seconds</see> properties are set. This function is typically used to parse measurements from a file or entered by the user. </remarks> <seealso cref="M:StormSource.Gps.Angle.Parse(System.String)">Parse Method</seealso> <param name="value">A <strong>String</strong> value containing an angular measurement.</param> <exception cref="T:System.ArgumentNullException" caption="ArgumentNullException">See the Parse method for specific exceptions.</exception> <exception cref="T:System.ArgumentException" caption="ArgumentException">See the Parse method for specific exceptions.</exception> <example> This example creates a new instance by parsing a string. (NOTE: The double-quote is doubled up to represent a single double-quote in the string.) <code lang="VB"> Dim MyAngle As New Angle("123°45'67.8""") </code> <code lang="VB"> Angle MyAngle = new Angle("123°45'67.8""") </code> </example> </member><member name="P:StormSource.Gps.Angle.IsImmutable"> <summary>Indicates if an angle's properties may be modified.</summary> <returns>An object is considered immutable if it's value(s) cannot be changed. This is set to True for any shared fields in this class.</returns> <remarks> An object is considered "immutable" if it's properties cannot be modified in any way. Shared fields such as <see cref="F:StormSource.Gps.Angle.Minimum">Minimum</see> and <see cref="F:StormSource.Gps.Angle.Maximum">Maximum</see> are always immutable into to prevent them from being modified. </remarks> <example> This example demonstrates how to test if an object is immutable before proceeding to change a property. <code lang="VB"> Dim MyAngle As New Angle(45, True) If Not MyAngle.IsImmutable Then MyAngle.Hours = 90 End If </code> <code lang="C#"> Angle MyAngle = new Angle(45, True); if (!MyAngle.IsImmutable) { MyAngle.Hours = 90; } </code> </example> </member><member name="M:StormSource.Gps.Angle.CompareTo(System.Object)"> <summary>Returns a value indicating the relative order of two objects.</summary> <returns>A value of -1, 0, or 1 as documented by the IComparable interface.</returns> <remarks> This method allows collections of <strong>Angle</strong> objects to be sorted. The <see cref="P:StormSource.Gps.Angle.DecimalDegrees">DecimalDegrees</see> property of each instance is compared. </remarks> <param name="obj">An <strong>Angle</strong> object to compare with.</param> </member><member name="M:StormSource.Gps.Angle.Clone"> <summary>Creates a mutable copy of the current instance.</summary> <returns>A new <strong>Angle</strong> object with the same property values.</returns> <remarks> The cloned object shares the same value for the <see cref="P:StormSource.Gps.Angle.DecimalDegrees">DecimalDegrees</see> property. The <see cref="P:StormSource.Gps.Angle.IsImmutable">immutable</see> setting is not copied, thus allowing this method to make a writable copy of a read-only shared field. </remarks> <example> This example creates an angular measurement of ninety degrees, then copies the object to a new instance. The properties of both objects have the same value. <code lang="VB"> ' Create an angle of 90° Dim OriginalAngle As New Angle(90) ' Create a copy of the object Dim MyClone As Angle = OriginalAngle.Clone </code> <code lang="C#"> // Create an angle of 90° Angle OriginalAngle = new Angle(90); // Create a copy of the object Angle MyClone = OriginalAngle.Clone(); </code> </example> </member><member name="M:StormSource.Gps.Angle.ToRadians"> <summary>Converts the current instance into radians.</summary> <returns>A <see cref="T:StormSource.Gps.Radian">Radian</see> object.</returns> <remarks> <para>This function is typically used to convert an angular measurement into radians before performing a trigonometric function. </para> </remarks> <seealso cref="T:StormSource.Gps.Radian">Radian Class</seealso> <overloads>Converts an angular measurement into radians before further processing.</overloads> <example> This example converts a measurement of 90° into radians. <code lang="VB"> Dim MyAngle As New Angle(90) Dim MyRadians As Radian = MyAngle.ToRadians() </code> <code lang="C#"> Angle MyAngle = new Angle(90); Radian MyRadians = MyAngle.ToRadians(); </code> </example> </member><member name="M:StormSource.Gps.Angle.ToRadians(System.Double)"> <remarks> <para>This function is typically used to convert an angular measurement into radians before performing a trigonometric function.</para> </remarks> <returns>A <see cref="T:StormSource.Gps.Radian"><strong>Radian</strong></see> object.</returns> <param name="value">A decimal degree measurement.</param> <summary>Converts an angular measurement into radians.</summary> <example> This example shows a quick way to convert an angle of 90° into radians. <code lang="VB"> Dim MyRadian As Radian = Angle.ToRadians(90) </code> <code lang="C#"> Radian MyRadian = Angle.ToRadians(90); </code> </example> </member><member name="M:StormSource.Gps.Angle.FromRadians(StormSource.Gps.Radian)"> <summary>Converts a value in radians into an angular measurement.</summary> <remarks> This function is typically used in conjunction with the <see cref="M:StormSource.Gps.Angle.ToRadians">ToRadians</see> method after a trigonometric function has completed. The converted value is stored in the <see cref="P:StormSource.Gps.Angle.DecimalDegrees">DecimalDegrees</see> property. </remarks> <seealso cref="M:StormSource.Gps.Angle.ToRadians">ToRadians</seealso> <seealso cref="T:StormSource.Gps.Radian">Radian Class</seealso> <param name="value">A <strong>Radian</strong> containing a measurement in radians.</param> <example> This example demonstrates how to set the DecimalDegrees property to a value based on one radian. <code lang="VB"> ' Create a new angle equal to one radian Dim MyAngle As New Angle() Dim MyRadians As New Radian(1) MyAngle.FromRadians(MyRadians) ' Output the angle in decimal degrees Debug.WriteLine(MyAngle.ToString()) </code> <code lang="C#"> // Create a new angle equal to one radian Angle MyAngle = new Angle(); Radian MyRadians = new Radian(1); MyAngle.FromRadians(MyRadians) // Output the angle in decimal degrees Debug.WriteLine(MyAngle.ToString()); </code> </example> </member><member name="M:StormSource.Gps.Angle.FromRadians(System.Double)"> <summary>Converts a value in radians into an angular measurement.</summary> <param name="value">A <strong>Double</strong> containing a measurement in radians.</param> <remarks> This function is typically used in conjunction with the <see cref="M:StormSource.Gps.Angle.ToRadians">ToRadians</see> method after a trigonometric function has completed. The converted value is stored in the <see cref="P:StormSource.Gps.Angle.DecimalDegrees">DecimalDegrees</see> property. </remarks> <example> This example demonstrates how to set the DecimalDegrees property to a value based on one radian. <code lang="VB"> ' Create a new angle equal to one radian Dim MyAngle As New Angle() MyAngle.FromRadians(1) ' Output the angle in decimal degrees Debug.WriteLine(MyAngle.ToString()) </code> <code lang="C#"> // Create a new angle equal to one radian Angle MyAngle = new Angle(); MyAngle.FromRadians(1); // Output the angle in decimal degrees Debug.WriteLine(MyAngle.ToString()); </code> </example> <seealso cref="M:StormSource.Gps.Angle.ToRadians">ToRadians</seealso> <seealso cref="T:StormSource.Gps.Radian">Radian Class</seealso> </member><member name="P:StormSource.Gps.Angle.DecimalDegrees"> <summary>Represents hours, minutes and/or seconds as a single numeric value.</summary> <value>A <strong>Double</strong> value.</value> <remarks> This property is typically used when a measurement does not need to be specified as individual hours, minutes and seconds. Changing this property causes the <see cref="E:StormSource.Gps.Angle.DecimalDegreesChanged(System.Object,StormSource.Gps.AngleEventArgs)"> DecimalDegreesChanged</see> event to be raised, and the <see cref="P:StormSource.Gps.Angle.Hours">Hours</see>, <see cref="P:StormSource.Gps.Angle.Minutes">Minutes</see> and <see cref="P:StormSource.Gps.Angle.Seconds">Seconds</see> properties are automatically recalculated. </remarks> <seealso cref="E:StormSource.Gps.Angle.DecimalDegreesChanged(System.Object,StormSource.Gps.AngleEventArgs)">DecimalDegreesChanged Event</seealso> <seealso cref="P:StormSource.Gps.Angle.Hours">Hours Property</seealso> <seealso cref="P:StormSource.Gps.Angle.Minutes">Minutes Property</seealso> <seealso cref="P:StormSource.Gps.Angle.Seconds">Seconds Property</seealso> <example> This example demonstrates how the <see cref="P:StormSource.Gps.Angle.DecimalDegrees">DecimalDegrees</see> property re-calculates the Hours, Minutes, DecimalMinutes and Seconds properties automatically. Note how the Hours property is correct even though it was not explicitly set to a value. <code lang="VB"> ' Create an angle of 20.5° Dim MyAngle As New Angle() MyAngle.DecimalDegrees = 20.5 ' Setting the DecimalMinutes recalculated other properties Debug.WriteLine(MyAngle.Hours) ' Output: "20" </code> <code lang="C#"> // Create an angle of 20.5° Angle MyAngle = new Angle(); MyAngle.DecimalDegrees = 20.5; // Setting the DecimalMinutes recalculated other properties Debug.WriteLine(MyAngle.Hours); // Output: "20" </code> </example> <exception cref="T:StormSource.Gps.ImmutableObjectException" caption="ImmutableObjectException">Thrown if the object was created with the IsImmutable flag set. This is typically thrown when attempting to modify a shared member.</exception> </member><member name="P:StormSource.Gps.Angle.DecimalMinutes"> <summary>Returns the minutes and seconds as a single numeric value.</summary> <seealso cref="P:StormSource.Gps.Angle.Minutes">Minutes Property</seealso> <seealso cref="P:StormSource.Gps.Angle.DecimalDegrees">DecimalDegrees Property</seealso> <seealso cref="E:StormSource.Gps.Angle.MinutesChanged(System.Object,StormSource.Gps.AngleEventArgs)">MinutesChanged Event</seealso> <seealso cref="E:StormSource.Gps.Angle.SecondsChanged(System.Object,StormSource.Gps.AngleEventArgs)">SecondsChanged Event</seealso> <value>A <strong>Double</strong> value.</value> <remarks> This property is typically used when the hours an minutes of a measurement are known, but not the seconds. Changing this property causes the <see cref="E:StormSource.Gps.Angle.MinutesChanged(System.Object,StormSource.Gps.AngleEventArgs)">MinutesChanged</see> and <see cref="E:StormSource.Gps.Angle.SecondsChanged(System.Object,StormSource.Gps.AngleEventArgs)">SecondsChanged</see> events to be raised, and the <see cref="P:StormSource.Gps.Angle.Hours">DecimalDegrees</see> and <see cref="P:StormSource.Gps.Angle.Seconds">Seconds</see> properties are automatically recalculated. </remarks> <exception cref="T:StormSource.Gps.ImmutableObjectException" caption="ImmutableObjectException">Thrown if the object was created with the IsImmutable flag set. This is typically thrown when attempting to modify a shared member.</exception> <example> This example demonstrates how setting this property causes the Hours, Minutes, DecimalDegrees and Seconds properties to be recalculated automatically. Note how the Hours property is correct even though it was not explicitly set to a value. <code lang="VB"> ' Create an angle of 20.5° Dim MyAngle As New Angle() MyAngle.DecimalDegrees = 20.5 ' Setting the DecimalMinutes recalculated other properties Debug.WriteLine(MyAngle.Minutes) ' Output: "20" </code> <code lang="C#"> // Create an angle of 20.5° Angle MyAngle = new Angle(); MyAngle.DecimalMinutes = 20.5; // Setting the DecimalMinutes recalculated other properties Debug.WriteLine(MyAngle.Minutes); // Output: "20" </code> </example> </member><member name="M:StormSource.Gps.Angle.Equals(StormSource.Gps.Angle)"> <summary>Compares the current instance to another instance.</summary> <returns>Returns <strong>True</strong> if the <see cref="P:StormSource.Gps.Angle.DecimalDegrees"> DecimalDegrees</see> properties are the same out to four digits of precision. </returns> <remarks> For comparisons using less or more precision, refer to the <see cref="M:StormSource.Gps.Angle.Equals(StormSource.Gps.Angle)">Equals</see> method. </remarks> <seealso cref="M:StormSource.Gps.Angle.Equals(StormSource.Gps.Angle)">Equals Method</seealso> <param name="value">An <strong>Angle</strong> object.</param> </member><member name="M:StormSource.Gps.Angle.Equals(StormSource.Gps.Angle,System.Int32)"> <summary>Compares the current instance to another instance with the specified precision.</summary> <param name="value">An <strong>Angle</strong> object.</param> <param name="precision"> An <strong>Integer</strong> containing the precision used during comparison. </param> <returns> <para>Returns <strong>True</strong> if the <see cref="P:StormSource.Gps.Angle.DecimalDegrees"> DecimalDegrees</see> properties are the same out to the number of digits specified by the Precision parameter.</para> </returns> <remarks> <para>This is typically used in special cases where the default precision of four digits is not sufficient. For comparisons using the default precision of four digits, refer to the <see cref="M:StormSource.Gps.Angle.Equals(StormSource.Gps.Angle)">Equals</see> method.</para> </remarks> <seealso cref="M:StormSource.Gps.Angle.Equals(StormSource.Gps.Angle)">Equals Method</seealso> </member><member name="M:StormSource.Gps.Angle.Equals(System.Double)"> <summary>Compares the current instance to the specified decimal degrees.</summary> <param name="value"> A <strong>Double</strong> containing an angular measurement in decimal degrees. </param> <remarks> For comparisons using less or more precision, refer to the <see cref="M:StormSource.Gps.Angle.Equals(StormSource.Gps.Angle)">Equals</see> method. </remarks> <returns>Returns <strong>True</strong> if the <see cref="P:StormSource.Gps.Angle.DecimalDegrees">DecimalDegrees</see> properties are the same out to four digits of precision. </returns> </member><member name="M:StormSource.Gps.Angle.Equals(System.Double,System.Int32)"> <summary>Compares the current instance to a value with the specified precision.</summary> <returns> <para>Returns <strong>True</strong> if the <see cref="P:StormSource.Gps.Angle.DecimalDegrees">DecimalDegrees</see> properties are the same out to the number of digits specified by the Precision parameter.</para> </returns> </member><member name="M:StormSource.Gps.Angle.Equals(System.Object)"> <summary>Compares the current instance to an arbitrary type or object.</summary> <returns> Returns <strong>True</strong> if the <strong>DecimalDegrees</strong> property precisely matches the value passed. </returns> <remarks> This function will return <strong>False</strong> if a value other than a <strong>Double</strong> or <strong>Angle</strong> is passed. </remarks> <param name="value">A <strong>Double</strong> or <strong>Angle</strong> object to compare with. </param> </member><member name="M:StormSource.Gps.Angle.GetHashCode"> <summary>Returns a unique code for this instance.</summary> <remarks> The hash code is created based on the value of the <see cref="P:StormSource.Gps.Angle.DecimalDegrees">DecimalDegrees</see> property. </remarks> </member><member name="P:StormSource.Gps.Angle.Hours"> <summary>Returns the integer hours (degrees) portion of an angular measurement.</summary> <seealso cref="E:StormSource.Gps.Angle.HoursChanged(System.Object,StormSource.Gps.AngleEventArgs)">HoursChanged Event</seealso> <seealso cref="P:StormSource.Gps.Angle.Minutes">Minutes Property</seealso> <seealso cref="P:StormSource.Gps.Angle.Seconds">Seconds Property</seealso> <value>An <strong>Integer</strong> value.</value> <remarks>This property is used in conjunction with the <see cref="P:StormSource.Gps.Angle.Minutes">Minutes</see> and <see cref="P:StormSource.Gps.Angle.Seconds">Seconds</see> properties to create a <see cref="M:StormSource.Gps.Angle.SetSexagesimal">sexagesimal</see> measurement. Changing this property causes the <see cref="P:StormSource.Gps.Angle.DecimalDegrees">DecimalDegrees</see> property to be recalculated to match the decimal representation of the sexagesimal measurement. The <see cref="E:StormSource.Gps.Angle.HoursChanged(System.Object,StormSource.Gps.AngleEventArgs)">HoursChanged</see> event is also Occurs when this property changes. If this property is assigned to a value outside the allowed minimum and maximum, the value will automatically be <see cref="M:StormSource.Gps.Angle.Normalize(System.Double)">normalized</see>. </remarks> <exception cref="T:StormSource.Gps.ImmutableObjectException" caption="ImmutableObjectException">Thrown if the object was created with the IsImmutable flag set. This is typically thrown when attempting to modify a shared member.</exception> <example>This example creates an angle of 45° using the Hours property. <code lang="VB"> Dim MyAngle As New Angle() MyAngle.Hours = 45 </code> <code lang="C#"> Angle MyAngle = new Angle(); MyAngle.Hours = 45; </code> </example> </member><member name="P:StormSource.Gps.Angle.Minutes"> <summary>Returns the integer minutes portion of an angular measurement.</summary> <seealso cref="E:StormSource.Gps.Angle.MinutesChanged(System.Object,StormSource.Gps.AngleEventArgs)">MinutesChanged Event</seealso> <seealso cref="P:StormSource.Gps.Angle.Hours">Hours Property</seealso> <seealso cref="P:StormSource.Gps.Angle.Seconds">Seconds Property</seealso> <remarks>This property is used in conjunction with the <see cref="P:StormSource.Gps.Angle.Hours">Hours</see> and <see cref="P:StormSource.Gps.Angle.Seconds">Seconds</see> properties to create a <see cref="M:StormSource.Gps.Angle.SetSexagesimal">sexagesimal</see> measurement. Changing this property causes the <see cref="P:StormSource.Gps.Angle.DecimalDegrees">DecimalDegrees</see> property to be recalculated to match the decimal representation of the sexagesimal measurement. The <see cref="E:StormSource.Gps.Angle.MinutesChanged(System.Object,StormSource.Gps.AngleEventArgs)">MinutesChanged</see> event is also Occurs when this property changes. </remarks> <value>An <strong>Integer</strong>.</value> <exception cref="T:StormSource.Gps.ImmutableObjectException" caption="ImmutableObjectException">Thrown if the object was created with the IsImmutable flag set. This is typically thrown when attempting to modify a shared member.</exception> <example>This example creates an angle of 45°30' (45 degrees, 30 minutes) using the Hours and Minutes properties. <code lang="VB"> Dim MyAngle As New Angle() MyAngle.Hours = 45 MyAngle.Minutes = 30 </code> <code lang="C#"> Angle MyAngle = new Angle(); MyAngle.Hours = 45; MyAngle.Minutes = 30; </code> </example> </member><member name="M:StormSource.Gps.Angle.Parse(System.String)"> <summary>Converts an angular measurement in the form of a string into an <strong>Angle</strong> object. </summary> <returns> A new <strong>Angle</strong> object populated with the specified values. </returns> <remarks> <para>This powerful method is typically used to process data from a data store or a value input by the user. This function can accept any format which can be output by the <see cref="M:StormSource.Gps.Angle.ToString">ToString</see> method.</para> </remarks> <exception cref="T:System.ArgumentNullException" caption="ArgumentNullException">The Parse method requires a decimal or sexagesimal measurement.</exception> <exception cref="T:System.FormatException" caption="FormatException">1. Only the right-most portion of a sexagesimal measurement can be a fractional value.<br/> 2. Extra characters were encountered while parsing an angular measurement. Only hours, minutes, and seconds are allowed.<br/> 3. The specified text was not fully understood as an angular measurement.</exception> <param name="value"> <para>A <strong>String</strong> in any of the following formats (or variation depending on the local culture):</para> <para> <table cellspacing="0" cols="4" cellpadding="2" width="100%"> <tbody> <tr> <td>hh</td> <td>hh.h</td> <td>hh mm</td> <td>hh mm.mm</td> </tr> <tr> <td>hh mm ss</td> <td>hh mm ss.sss</td> <td></td> <td></td> </tr> </tbody> </table> </para> <para>Any non-numeric character between numbers is considered a delimiter. Thus, a value of <strong>12°34'56.78"</strong> or even <strong>12A34B56.78C</strong> is treated the same as <strong>12 34 56.78</strong>.</para> </param> <seealso cref="M:StormSource.Gps.Angle.ToString">ToString Method</seealso> <example> This example creates a new angular measurement using the Parse method. <code lang="VB"> Dim NewAngle As Angle = Angle.Parse("123.45°") </code> <code lang="C#"> Angle NewAngle = Angle.Parse("123.45°"); </code> </example> </member><member name="P:StormSource.Gps.Angle.Seconds"> <summary>Returns the seconds minutes portion of an angular measurement.</summary> <remarks>This property is used in conjunction with the <see cref="P:StormSource.Gps.Angle.Hours">Hours</see> and <see cref="P:StormSource.Gps.Angle.Minutes">Minutes</see> properties to create a <see cref="M:StormSource.Gps.Angle.SetSexagesimal">sexagesimal</see> measurement. Changing this property causes the <see cref="P:StormSource.Gps.Angle.DecimalDegrees">DecimalDegrees</see> property to be recalculated to match the decimal representation of the sexagesimal measurement. The <see cref="E:StormSource.Gps.Angle.SecondsChanged(System.Object,StormSource.Gps.AngleEventArgs)">SecondsChanged</see> event is also Occurs when this property changes. </remarks> <seealso cref="E:StormSource.Gps.Angle.SecondsChanged(System.Object,StormSource.Gps.AngleEventArgs)">SecondsChanged Event</seealso> <seealso cref="P:StormSource.Gps.Angle.Hours">Hours Property</seealso> <seealso cref="P:StormSource.Gps.Angle.Minutes">Minutes Property</seealso> <value>A <strong>Double</strong> value.</value> <exception cref="T:StormSource.Gps.ImmutableObjectException" caption="ImmutableObjectException">Thrown if the object was created with the IsImmutable flag set. This is typically thrown when attempting to modify a shared member.</exception> <example>This example creates an angle of 45°30'15" (45 degrees, 30 minutes, 15 seconds) using the Hours, Minutes and Seconds properties. <code lang="VB"> Dim MyAngle As New Angle() MyAngle.Hours = 45 MyAngle.Minutes = 30 MyAngle.Seconds = 15 </code> <code lang="C#"> Angle MyAngle = new Angle(); MyAngle.Hours = 45; MyAngle.Minutes = 30; MyAngle.Seconds = 15; </code> </example> </member><member name="M:StormSource.Gps.Angle.ToString"> <summary>Outputs the decimal degrees using the default format.</summary> <returns> <para>A <strong>String</strong> in the following default format:</para> <table class="codeContainerTable" cellspacing="0" cellpadding="0" border="0"> <tr> <td nowrap="nowrap"> <code>###.#°</code> </td> </tr> </table> </returns> <remarks> This method is typically used to present an angular measurement to a user interface. The resulting <strong>String</strong> can be converted back into an <strong>Angle</strong> via the <see cref="M:StormSource.Gps.Angle.Parse(System.String)">Parse method</see>. </remarks> <seealso cref="M:StormSource.Gps.Angle.Parse(System.String)">Parse Method</seealso> <example> This example outputs a value of 90 degrees in the default format of ###.#°. <code lang="VB"> Dim MyAngle As New Angle(90) Debug.WriteLine(MyAngle.ToString) ' Output: "90°" </code> <code lang="C#"> Angle MyAngle = new Angle(90); Debug.WriteLine(MyAngle.ToString()); // Output: "90°" </code> </example> </member><member name="M:StormSource.Gps.Angle.ToString(System.String)"> <summary> Outputs the decimal degrees as a culture-specific string in a specific format. </summary> <param name="format"> <para>A combination of symbols, spaces, and any of the following case-insensitive letters: <strong>D</strong> or <strong>H</strong> for hours, <strong>M</strong> for minutes, and <strong>S</strong> for seconds. Here are some examples:</para> <para> <table cellspacing="0" cols="3" cellpadding="2" width="100%"> <tr> <td>hh°mm'ss.ss"</td> <td>hhh.h°</td> <td>hh mm.mm</td> <td>hhhmmss</td> </tr> </table> </para> </param> <returns>A <strong>String</strong> in the specified format.</returns> <remarks> <para>This powerful method returns the current angular measurement in a specific format. If no value for the format is specified, a format of <strong>###.#°</strong> (adjusted to the machine's local culture) will be used. The resulting <strong>String</strong> can be converted back into an <strong>Angle</strong> via the <see cref="M:StormSource.Gps.Angle.Parse(System.String)">Parse</see> method so long as a delimiter separates each individual value.</para> </remarks> <seealso cref="M:StormSource.Gps.Angle.ToString">ToString Method</seealso> <seealso cref="M:StormSource.Gps.Angle.Parse(System.String)">Parse Method</seealso> <example> This example demonstrates how to output an angle in a custom format. <code lang="VB"> Dim MyAngle As New Angle(10, 20, 30) Debug.WriteLine(MyAngle.ToString("dd°mm")) ' Output: "10°20'" </code> <code lang="C#"> Angle MyAngle = new Angle(12, 20, 30); Debug.WriteLine(MyAngle.ToString("dd°mm")); // Output: "10°20'" </code> </example> </member><member name="M:StormSource.Gps.Angle.ToString(System.String,System.IFormatProvider)"> <summary>Outputs an angular measurement as a string, using the specified format and culture.</summary> <param name="formatProvider"> Culture information from the <strong>System.Globalization</strong> namespace, typically <strong>CultureInfo.CurrentCulture</strong>. </param> <param name="format"> <para>A combination of symbols, spaces, and any of the following letters:</para> <blockquote dir="ltr" style="MARGIN-RIGHT: 0px"> <para><strong>D</strong> or <strong>H</strong> Decimal degrees</para> <para><strong>M</strong> Decimal minutes</para> <para><strong>S</strong> Decimal seconds</para> </blockquote> </param> <remarks> This powerful method returns the current angular measurement in a specific format. If no value for the format is specified, a default format of "HHH.H°" (adjusted to the current culture) will be used. The resulting <strong>String</strong> can be converted back into an <strong>Angle</strong> via the <see cref="M:StormSource.Gps.Angle.Parse(System.String)">Parse</see> method. </remarks> <returns>A <strong>String</strong> designed in the specified format and culture.</returns> </member><member name="M:StormSource.Gps.Angle.SetSexagesimal"> <summary> Calculates hours, minutes and seconds based upon the specified decimal degrees. </summary> <remarks>This method is provided for developers writing their own classes based upon the Angle class. This method is already called automatically by the Angle class and classes which inherit it within the GPS.NET framework. If, during calculation, a value for minutes or seconds is 60 or above, the hours or minutes properties will be automatically adjusted.</remarks> <seealso cref="M:StormSource.Gps.Angle.SetDecimalDegrees">SetDecimalDegrees Method</seealso> </member><member name="M:StormSource.Gps.Angle.ToDecimalDegrees(System.Int32,System.Int32,System.Double)"> <summary>Converts arbitrary hour, minute and seconds into decimal degrees.</summary> <returns> A <strong>Double</strong> containing the decimal degree version of the specified values. </returns> <remarks> This function is used to convert three-part measurements into a single value. The result of this method is typically assigned to the <see cref="P:StormSource.Gps.Angle.DecimalDegrees"> DecimalDegrees</see> property. The resulting value will be <see cref="M:StormSource.Gps.Angle.Normalize(System.Double)">normalized</see> to be between 0° and 360° if necessary. </remarks> <param name="hours">An <strong>Integer</strong> specifying a number of hours.</param> <param name="minutes">An <strong>Integer</strong> specifying a number of minutes.</param> <param name="seconds">A <strong>Double</strong> specifying a number of seconds.</param> <seealso cref="P:StormSource.Gps.Angle.DecimalDegrees">DecimalDegrees Property</seealso> <seealso cref="M:StormSource.Gps.Angle.Normalize(System.Double)">Normalize Method</seealso> <example> <code lang="VB" title="ToDecimalDegrees method example" description="This example demonstrates how to combine an hours, minutes and seconds measurement of 10°20'30 into a single decimal value."> Dim MyValue As Double = Angle.ToDecimalDegrees(10, 20, 30) </code> </example> </member><member name="M:StormSource.Gps.Angle.SetDecimalDegrees"> <summary> Calculates decimal degrees based upon the specified hours, minutes and seconds. </summary> <remarks>This method is provided for developers writing their own classes based upon the Angle class. This method is already called automatically by the Angle class and classes which inherit it within the GPS.NET framework.</remarks> <seealso cref="M:StormSource.Gps.Angle.SetSexagesimal">SetSexagesimal Method</seealso> </member><member name="T:StormSource.Gps.Angle"> <summary>Represents an angular measurement between 0° and 360°.</summary> <remarks> <para>This class serves as the base class for angular measurement classes within the framework, such as the <see cref="T:StormSource.Gps.Azimuth">Azimuth</see>, <see cref="T:StormSource.Gps.Latitude">Latitude</see> and <see cref="T:StormSource.Gps.Longitude">Longitude</see> classes. An "angular measurement" is a measurement of a circular distance from zero degrees (0°) at the top of a circle, as shown here: </para> <para> <img src="Angle.jpg"/> </para> <para>Angular measurements are made from the current location. Using the above example, if a GPS satellite is located to the northeast from your present location, you would store that measurement as an angular measurement of forty-five degrees (45°).</para> </remarks> <seealso cref="T:StormSource.Gps.Azimuth">Azimuth Class</seealso> <seealso cref="T:StormSource.Gps.Latitude">Latitude Class</seealso> <seealso cref="T:StormSource.Gps.Longitude">Longitude Class</seealso> <example> This example creates a new angle and changes it to represent 90°. <code lang="VB"> Dim MyAngle1 As New Angle(90) </code> <code lang="C#"> Angle MyAngle1 = new Angle(90); </code> This example also creates an angle of 90° using other techniques: <code lang="VB"> Dim MyAngle2 As New Angle() MyAngle2.DecimalDegrees = 90.0 </code> <code lang="C#"> Angle MyAngle2 = new Angle; MyAngle2.DecimalDegrees = 90.0; </code> This next example creates a new angle of 105 hours, 30 minutes and 21.4 seconds (105°31'21.4). <code lang="VB"> Dim MyAngle1 As New Angle(105, 30, 21.4) </code> <code lang="C#"> Angle MyAngle = new Angle(105, 30, 21.4) </code> This example creates the same angle by setting properties individually. <code lang="VB"> Dim MyAngle As New Angle() MyAngle.Hours = 105 MyAngle.Minutes = 30 MyAngle.Seconds = 21.4 </code> <code lang="C#"> Angle MyAngle = new Angle(); MyAngle.Hours = 105; MyAngle.Minutes = 30; MyAngle.Seconds = 21.4; </code> </example> </member><member name="T:StormSource.Gps.AngleEventHandler"> <summary> Facilitates events and asynchronous calls which use an <strong>Angle</strong> object as a parameter. </summary> <remarks> See the <see cref="T:StormSource.Gps.Angle">Angle</see> class for more information on events using angles. </remarks> <param name="sender">The object which initiated the call to the delegate.</param> <param name="e">An <see cref="T:StormSource.Gps.AngleEventArgs">AngleEventArgs</see> object containing an <see cref="T:StormSource.Gps.Angle">Angle</see> involved in the event. </param> <example> This example declares a custom event using this delegate. <code lang="VB"> Dim MyAngleEvent As AngleEventHandler </code> <code lang="C#"> AngleEventHandler MyAngleEvent; </code> </example> <seealso cref="T:StormSource.Gps.AngleEventArgs">AngleEventArgs Class</seealso> <seealso cref="T:StormSource.Gps.Angle">Angle Class</seealso> </member><member name="T:StormSource.Gps.AzimuthEventHandler"> <summary> Facilitates events and asynchronous calls which use an <strong>Azimuth</strong> object as a parameter. </summary> <param name="sender">The object which initiated the call to the delegate.</param> <param name="e"> An <see cref="T:StormSource.Gps.AzimuthEventArgs">AzimuthEventArgs</see> object containing an <see cref="T:StormSource.Gps.Azimuth">Azimuth</see> involved in the event. </param> <example> This example declares a custom event using this delegate. <code lang="VB"> Dim MyAzimuthEvent As AzimuthEventHandler </code> <code lang="C#"> AzimuthEventHandler MyAzimuthEvent; </code> </example> <seealso cref="T:StormSource.Gps.AzimuthEventArgs">AzimuthEventArgs Class</seealso> <seealso cref="T:StormSource.Gps.Azimuth">Azimuth Class</seealso> </member><member name="T:StormSource.Gps.CrossTrackErrorEventHandler"> <summary> Facilitates events and asynchronous calls which use an <strong>Azimuth</strong> object as a parameter. </summary> <param name="sender">The object which initiated the call to the delegate.</param> <param name="e"> An <see cref="T:StormSource.Gps.CrossTrackErrorEventArgs">CrossTrackErrorEventArgs</see> object containing a <see cref="T:StormSource.Gps.CrossTrackError">CrossTrackError</see> involved in the event. </param> <example> This example declares a custom event using this delegate. <code lang="VB"> Dim MyCrossTrackErrorEvent As CrossTrackErrorEventHandler </code> <code lang="C#"> CrossTrackErrorEventHandler MyCrossTrackErrorEvent; </code> </example> <seealso cref="T:StormSource.Gps.CrossTrackErrorEventArgs">CrossTrackErrorEventArgs Class</seealso> <seealso cref="T:StormSource.Gps.CrossTrackError">CrossTrackError Class</seealso> </member><member name="T:StormSource.Gps.DateTimeEventHandler"> <summary> Facilitates events and asynchronous calls which use a <strong>DateTime</strong> object as a parameter. </summary> <example> This example declares a custom event using this delegate. <code lang="VB"> Dim MyDateTimeEvent As DateTimeEventHandler </code> <code lang="C#"> DateTimeEventHandler MyDateTimeEvent; </code> </example> <param name="sender">The object which initiated the call to the delegate.</param> <param name="e">A <see cref="T:StormSource.Gps.DateTimeEventArgs">DateTimeEventArgs</see> object containing an <see cref="T:System.DateTime">DateTime</see> involved in the event.</param> </member><member name="T:StormSource.Gps.DeviceEventHandler"> <summary> Facilitates events and asynchronous calls which use a <strong>Device</strong> object as a parameter. </summary> <example> This example declares a custom event using this delegate. <code lang="VB"> Dim MyDeviceEvent As DeviceEventHandler </code> <code lang="C#"> DeviceEventHandler MyDeviceEvent; </code> </example> <param name="sender">The object which initiated the call to the delegate.</param> <param name="e">A <see cref="T:StormSource.Gps.DeviceEventArgs">DeviceEventArgs</see> object containing an <see cref="T:StormSource.Gps.Device">Device</see> involved in the event.</param> </member><member name="T:StormSource.Gps.DifferentialGpsEventHandler"> <summary> Facilitates events and asynchronous calls which use a <strong>DifferentialGps</strong> object as a parameter. </summary> <example> This example declares a custom event using this delegate. <code lang="VB"> Dim MyDifferentialGpsEvent As DifferentialGpsEventHandler </code> <code lang="C#"> DifferentialGpsEventHandler MyDifferentialGpsEvent; </code> </example> <param name="sender">The object which initiated the call to the delegate.</param> <param name="e">A <see cref="T:StormSource.Gps.DifferentialGpsEventArgs">DifferentialGpsEventArgs</see> object containing a <see cref="T:StormSource.Gps.DifferentialGps">DifferentialGps</see> involved in the event.</param> </member><member name="T:StormSource.Gps.DilutionOfPrecisionEventHandler"> <summary> Facilitates events and asynchronous calls which use an <strong>DilutionOfPrecision</strong> object as a parameter. </summary> <example> This example declares a custom event using this delegate. <code lang="VB"> Dim MyDilutionOfPRecisionEvent As DilutionOfPRecisionEventHandler </code> <code lang="C#"> DilutionOfPRecisionEventHandler MyDilutionOfPRecisionEvent; </code> </example> <param name="sender">The object which initiated the call to the delegate.</param> <param name="e">A <see cref="T:StormSource.Gps.DilutionOfPrecisionEventArgs">DilutionOfPrecisionEventArgs</see> object containing a <see cref="T:StormSource.Gps.DilutionOfPrecision">DilutionOfPrecision</see> involved in the event.</param> </member><member name="T:StormSource.Gps.DistanceEventHandler"> <summary> Facilitates events and asynchronous calls which use an <strong>Distance</strong> object as a parameter. </summary> <example> This example declares a custom event using this delegate. <code lang="VB"> Dim MyDistanceEvent As DistanceEventHandler </code> <code lang="C#"> DistanceEventHandler MyDistanceEvent; </code> </example> <param name="sender">The object which initiated the call to the delegate.</param> <param name="e">A <see cref="T:StormSource.Gps.DistanceEventArgs">DistanceEventArgs</see> object containing a <see cref="T:StormSource.Gps.Distance">Distance</see> involved in the event.</param> </member><member name="T:StormSource.Gps.ErrorEventHandler"> <summary> Facilitates events and asynchronous calls which use a <strong>GpsException</strong> object as a parameter. </summary> <example> This example declares a custom event using this delegate. <code lang="VB"> Dim MyErrorEvent As ErrorEventHandler </code> <code lang="C#"> ErrorEventHandler MyErrorEvent; </code> </example> <param name="sender">The object which initiated the call to the delegate.</param> <param name="e">A <see cref="T:StormSource.Gps.ErrorEventArgs">ErrorEventArgs</see> object containing a <see cref="T:StormSource.Gps.GpsException">GpsException</see> involved in the event.</param> </member><member name="T:StormSource.Gps.FixMethodEventHandler"> <summary> Facilitates events and asynchronous calls which use a <strong>FixMethod</strong> value as a parameter. </summary> <example> This example declares a custom event using this delegate. <code lang="VB"> Dim MyFixMethodEvent As FixMethodEventHandler </code> <code lang="C#"> FixMethodEventHandler MyFixMethodEvent; </code> </example> <param name="sender">The object which initiated the call to the delegate.</param> <param name="e">A <see cref="T:StormSource.Gps.FixMethodEventArgs">FixMethodEventArgs</see> object containing a <see cref="T:StormSource.Gps.FixMethod">FixMethod</see> value involved in the event.</param> </member><member name="T:StormSource.Gps.FixLikelihoodEventHandler"> <summary> Facilitates events and asynchronous calls which use a <strong>FixLikelihood</strong> value as a parameter. </summary> <example> This example declares a custom event using this delegate. <code lang="VB"> Dim MyFixLikelihoodEvent As FixLikelihoodEventHandler </code> <code lang="C#"> FixLikelihoodEventHandler MyFixLikelihoodEvent; </code> </example> <param name="sender">The object which initiated the call to the delegate.</param> <param name="e">A <see cref="T:StormSource.Gps.FixLikelihoodEventArgs">FixLikelihoodEventArgs</see> object containing a <see cref="T:StormSource.Gps.FixLikelihood">FixLikelihood</see> value involved in the event.</param> </member><member name="T:StormSource.Gps.FixModeEventHandler"> <summary> Facilitates events and asynchronous calls which use an <strong>FixMode</strong> value as a parameter. </summary> <example> This example declares a custom event using this delegate. <code lang="VB"> Dim MyFixModeEvent As FixModeEventHandler </code> <code lang="C#"> FixModeEventHandler MyFixModeEvent; </code> </example> <param name="sender">The object which initiated the call to the delegate.</param> <param name="e">A <see cref="T:StormSource.Gps.FixModeEventArgs">FixModeEventArgs</see> object containing a <see cref="T:StormSource.Gps.FixMode">FixMode</see> value involved in the event.</param> </member><member name="T:StormSource.Gps.FixQualityEventHandler"> <summary> Facilitates events and asynchronous calls which use an <strong>FixQuality</strong> value as a parameter. </summary> <example> This example declares a custom event using this delegate. <code lang="VB"> Dim MyFixQualityEvent As FixQualityEventHandler </code> <code lang="C#"> FixQualityEventHandler MyFixQualityEvent; </code> </example> <param name="sender">The object which initiated the call to the delegate.</param> <param name="e">A <see cref="T:StormSource.Gps.FixQualityEventArgs">FixQualityEventArgs</see> object containing a <see cref="T:StormSource.Gps.FixQuality">FixQuality</see> value involved in the event.</param> </member><member name="T:StormSource.Gps.LatitudeEventHandler"> <summary> Facilitates events and asynchronous calls which use an <strong>Latitude</strong> object as a parameter. </summary> <example> This example declares a custom event using this delegate. <code lang="VB"> Dim MyLatitudeEvent As LatitudeEventHandler </code> <code lang="C#"> LatitudeEventHandler MyLatitudeEvent; </code> </example> <param name="sender">The object which initiated the call to the delegate.</param> <param name="e">A <see cref="T:StormSource.Gps.LatitudeEventArgs">LatitudeEventArgs</see> object containing a <see cref="T:StormSource.Gps.Latitude">Latitude</see> object involved in the event.</param> </member><member name="T:StormSource.Gps.LongitudeEventHandler"> <summary> Facilitates events and asynchronous calls which use an <strong>Longitude</strong> object as a parameter. </summary> <example> This example declares a custom event using this delegate. <code lang="VB"> Dim MyLongitudeEvent As LongitudeEventHandler </code> <code lang="C#"> LongitudeEventHandler MyLongitudeEvent; </code> </example> <param name="sender">The object which initiated the call to the delegate.</param> <param name="e">A <see cref="T:StormSource.Gps.LongitudeEventArgs">LongitudeEventArgs</see> object containing a <see cref="T:StormSource.Gps.Longitude">Longitude</see> object involved in the event.</param> </member><member name="T:StormSource.Gps.ParsingErrorEventHandler"> <summary> Facilitates events and asynchronous calls which use an <strong>ParsingException</strong> object as a parameter. </summary> <example> This example declares a custom event using this delegate. <code lang="VB"> Dim MyParsingErrorEvent As ParsingErrorEventHandler </code> <code lang="C#"> ParsingErrorEventHandler MyParsingErrorEvent; </code> </example> <param name="sender">The object which initiated the call to the delegate.</param> <param name="e">A <see cref="T:StormSource.Gps.ParsingErrorEventArgs">ParsingErrorEventArgs</see> object containing a <see cref="T:StormSource.Gps.ParsingException">ParsingException</see> object involved in the event.</param> </member><member name="T:StormSource.Gps.PositionEventHandler"> <summary> Facilitates events and asynchronous calls which use an <strong>Position</strong> object as a parameter. </summary> <example> This example declares a custom event using this delegate. <code lang="VB"> Dim MyPositionEvent As PositionEventHandler </code> <code lang="C#"> PositionEventHandler MyPositionEvent; </code> </example> <param name="e">A <see cref="T:StormSource.Gps.PositionEventArgs">PositionEventArgs</see> object containing a <see cref="T:StormSource.Gps.Position">Position</see> object involved in the event.</param> <param name="sender">The object which initiated the call to the delegate.</param> </member><member name="T:StormSource.Gps.PositionErrorEventHandler"> <summary> Facilitates events and asynchronous calls which use an <strong>PositionError</strong> object as a parameter. </summary> <example> This example declares a custom event using this delegate. <code lang="VB"> Dim MyPositionErrorEvent As PositionErrorEventHandler </code> <code lang="C#"> PositionErrorEventHandler MyPositionErrorEvent; </code> </example> <param name="e">A <see cref="T:StormSource.Gps.PositionErrorEventArgs">PositionErrorEventArgs</see> object containing a <see cref="T:StormSource.Gps.PositionError">PositionError</see> object involved in the event.</param> <param name="sender">The object which initiated the call to the delegate.</param> </member><member name="T:StormSource.Gps.ProgressEventHandler"> <summary> Facilitates events and asynchronous calls which report updates during an iterative task. </summary> <example> This example declares a custom event using this delegate. <code lang="VB"> Dim MyProgressEvent As ProgressEventHandler </code> <code lang="C#"> ProgressEventHandler MyProgressEvent; </code> </example> <param name="e">A <see cref="T:StormSource.Gps.ProgressEventArgs">ProgressEventArgs</see> object containing information describing the minimum, maximum and value for a <see cref="T:System.Windows.Forms.ProgressBar">ProgressBar</see> control.</param> <param name="sender">The object which initiated the call to the delegate.</param> </member><member name="T:StormSource.Gps.RadianEventHandler"> <summary> Facilitates events and asynchronous calls which use an <strong>Radian</strong> object as a parameter. </summary> <example> This example declares a custom event using this delegate. <code lang="VB"> Dim MyRadianEvent As RadianEventHandler </code> <code lang="C#"> RadianEventHandler MyRadianEvent; </code> </example> <param name="e">A <see cref="T:StormSource.Gps.RadianEventArgs">RadianEventArgs</see> object containing a <see cref="T:StormSource.Gps.Radian">Radian</see> object involved with the event.</param> <param name="sender">The object which initiated the call to the delegate.</param> </member><member name="T:StormSource.Gps.RecommendedSteeringDirectionEventHandler"> <summary> Facilitates events and asynchronous calls which use an <strong>RecommendedSteeringDirection</strong> object as a parameter. </summary> <example> This example declares a custom event using this delegate. <code lang="VB"> Dim MyRecommendedSteeringDirectionEvent As RecommendedSteeringDirectionEventHandler </code> <code lang="C#"> RecommendedSteeringDirectionEventHandler MyRecommendedSteeringDirectionEvent; </code> </example> <param name="e">A <see cref="T:StormSource.Gps.DifferentialGpsEventArgs">DifferentialGpsEventArgs</see> object containing a <see cref="T:StormSource.Gps.RecommendedSteeringDirection">RecommendedSteeringDirection</see> value involved with the event.</param> <param name="sender">The object which initiated the call to the delegate.</param> </member><member name="T:StormSource.Gps.SatelliteCountEventHandler"> <summary> Facilitates events and asynchronous calls which use a satellite-count-related <strong>Integer</strong> as a parameter. </summary> <example> This example declares a custom event using this delegate. <code lang="VB"> Dim MySatelliteCountEvent As SatelliteCountEventHandler </code> <code lang="C#"> SatelliteCountEventHandler MySatelliteCountEvent; </code> </example> <param name="e">A <see cref="T:StormSource.Gps.SatelliteCountEventArgs">SatelliteCountEventArgs</see> object containing information about satellite count statistics.</param> <param name="sender">The object which initiated the call to the delegate.</param> </member><member name="T:StormSource.Gps.SatelliteEventHandler"> <summary> Facilitates events and asynchronous calls which use an <strong>Satellite</strong> object as a parameter. </summary> <example> This example declares a custom event using this delegate. <code lang="VB"> Dim MySatelliteEvent As SatelliteEventHandler </code> <code lang="C#"> SatelliteEventHandler MySatelliteEvent; </code> </example> <param name="e">A <see cref="T:StormSource.Gps.SatelliteEventArgs">SatelliteEventArgs</see> object containing a <see cref="T:StormSource.Gps.Satellite">Satellite</see> object involved with the event.</param> <param name="sender">The object which initiated the call to the delegate.</param> </member><member name="T:StormSource.Gps.SentenceEventHandler"> <summary> Facilitates events and asynchronous calls which use a sentence-related <strong>String</strong> as a parameter. </summary> <example> This example declares a custom event using this delegate. <code lang="VB"> Dim MySentenceEvent As SentenceEventHandler </code> <code lang="C#"> SentenceEventHandler MySentenceEvent; </code> </example> <param name="e">A <see cref="T:StormSource.Gps.SentenceEventArgs">SentenceEventArgs</see> object containing raw, unmodified GPS data.</param> <param name="sender">The object which initiated the call to the delegate.</param> </member><member name="T:StormSource.Gps.SignalToNoiseRatioEventHandler"> <summary> Facilitates events and asynchronous calls which use an <strong>SignalToNoiseRatio</strong> object as a parameter. </summary> <example> This example declares a custom event using this delegate. <code lang="VB"> Dim MySignalToNoiseRatioEvent As SignalToNoiseRatioEventHandler </code> <code lang="C#"> SignalToNoiseRatioEventHandler MySignalToNoiseRatioEvent; </code> </example> <param name="e">A <see cref="T:StormSource.Gps.SignalToNoiseRatioEventArgs">SignalToNoiseRatioEventArgs</see> object containing a <see cref="T:StormSource.Gps.SignalToNoiseRatio">SignalToNoiseRatio</see> object involved with the event.</param> <param name="sender">The object which initiated the call to the delegate.</param> </member><member name="T:StormSource.Gps.SpeedEventHandler"> <summary> Facilitates events and asynchronous calls which use an <strong>Speed</strong> object as a parameter. </summary> <example> This example declares a custom event using this delegate. <code lang="VB"> Dim MySpeedEvent As SpeedEventHandler </code> <code lang="C#"> SpeedEventHandler MySpeedEvent; </code> </example> <param name="e">A <see cref="T:StormSource.Gps.SpeedEventArgs">SpeedEventArgs</see> object containing a <see cref="T:StormSource.Gps.Speed">Speed</see> object involved with the event.</param> <param name="sender">The object which initiated the call to the delegate.</param> </member><member name="T:StormSource.Gps.TimeSpanEventHandler"> <summary> Facilitates events and asynchronous calls which use an <strong>TimeSpan</strong> object as a parameter. </summary> <example> This example declares a custom event using this delegate. <code lang="VB"> Dim MyTimeSpanEvent As TimeSpanEventHandler </code> <code lang="C#"> TimeSpanEventHandler MyTimeSpanEvent; </code> </example> <param name="e">A <see cref="T:StormSource.Gps.TimeSpanEventArgs">TimeSpanEventArgs</see> object containing a <see cref="T:System.TimeSpan">TimeSpan</see> object involved with the event.</param> <param name="sender">The object which initiated the call to the delegate.</param> </member><member name="T:StormSource.Gps.UtmPositionEventHandler"> <summary> Facilitates events and asynchronous calls which use an <strong>UtmPosition</strong> object as a parameter. </summary> <example> This example declares a custom event using this delegate. <code lang="VB"> Dim MyUtmPositionEvent As UtmPositionEventHandler </code> <code lang="C#"> UtmPositionEventHandler MyUtmPositionEvent; </code> </example> <param name="e">A <see cref="T:StormSource.Gps.UtmPositionEventArgs">UtmPositionEventArgs</see> object containing a <see cref="T:StormSource.Gps.UtmPosition">UtmPosition</see> object involved with the event.</param> <param name="sender">The object which initiated the call to the delegate.</param> </member><member name="T:StormSource.Gps.WaypointEventHandler"> <summary> Facilitates events and asynchronous calls which use an <strong>Waypoint</strong> object as a parameter. </summary> <example> This example declares a custom event using this delegate. <code lang="VB"> Dim MyWaypointEvent As WaypointEventHandler </code> <code lang="C#"> WaypointEventHandler MyWaypointEvent; </code> </example> <param name="e">A <see cref="T:StormSource.Gps.WaypointEventArgs">WaypointEventArgs</see> object containing a <see cref="T:StormSource.Gps.Waypoint">Waypoint</see> object involved with the event.</param> <param name="sender">The object which initiated the call to the delegate.</param> </member><member name="M:StormSource.Gps.AngleEventArgs.#ctor(StormSource.Gps.Angle)"> <summary> Creates a new instance containing the specified Angle object. </summary> </member><member name="P:StormSource.Gps.AngleEventArgs.Angle"> <summary> Represents information about an angular measurement when an angle-related event is raised. </summary> <value>An <strong>Angle</strong> object containing a property which has changed.</value> <remarks>This class is used by the <see cref="P:StormSource.Gps.AngleEventArgs.Angle">Angle</see> class to provide notification when hours, minutes, or seconds properties have changed.</remarks> <seealso cref="P:StormSource.Gps.AngleEventArgs.Angle">Angle Class</seealso> </member><member name="T:StormSource.Gps.AngleEventArgs"> <summary>Represents information about an angle when an angle-related event is raised.</summary> <remarks>This class is typically used for events in the <see cref="T:StormSource.Gps.Angle">Angle</see> class to provide notification when hours, minutes, decimal minutes or seconds properties have changed.</remarks> <example>This example demonstrates how to use this class when raising an event. <code lang="VB"> ' Declare a new event Dim MyAngleEvent As AngleEventHandler ' Create an angle of 90° Dim MyAngle As New Angle(90) Sub Main() ' Raise our custom event RaiseEvent MyAngleEvent(Me, New AngleEventArgs(MyAngle)) End Sub </code> <code lang="C#"> // Declare a new event AngleEventHandler MyAngleEvent; // Create an angle of 90° Angle MyAngle = new Angle(90); void Main() { // Raise our custom event MyAngleEvent(this, New AngleEventArgs(MyAngle)); } </code> </example> <seealso cref="T:StormSource.Gps.Angle">Angle Class</seealso> <seealso cref="T:StormSource.Gps.AngleEventHandler">AngleEventHandler Delegate</seealso> </member><member name="M:StormSource.Gps.AzimuthEventArgs.#ctor(StormSource.Gps.Azimuth)"> <summary> Creates a new instance containing the specified Azimuth object. </summary> <param name="Azimuth">An Azimuth object to use in an Azimuth-related event.</param> </member><member name="P:StormSource.Gps.AzimuthEventArgs.Azimuth"> <summary> Represents information about an angle around the horizon when an azimuth-related event is raised. </summary> <value>An <strong>Azimuth</strong> object containing a property which has changed.</value> <remarks>This class is used by the <see cref="P:StormSource.Gps.AzimuthEventArgs.Azimuth">Azimuth</see> class to provide notification when hours, minutes, or seconds properties have changed.</remarks> <seealso cref="P:StormSource.Gps.AzimuthEventArgs.Azimuth">Azimuth Class</seealso> </member><member name="T:StormSource.Gps.AzimuthEventArgs"> <summary>Represents information about an azimuth when an azimuth-related event is raised.</summary> <remarks>This class is typically used for events in the <see cref="T:StormSource.Gps.Azimuth">Azimuth</see> class to provide notification when hours, minutes, decimal minutes or seconds properties have changed.</remarks> <example>This example demonstrates how to use this class when raising an event. <code lang="VB"> ' Declare a new event Dim MyAzimuthEvent As AzimuthEventHandler ' Create an Azimuth of 90° Dim MyAzimuth As New Azimuth(90) Sub Main() ' Raise our custom event RaiseEvent MyAzimuthEvent(Me, New AzimuthEventArgs(MyAzimuth)) End Sub </code> <code lang="C#"> // Declare a new event AzimuthEventHandler MyAzimuthEvent; // Create an Azimuth of 90° Azimuth MyAzimuth = new Azimuth(90); void Main() { // Raise our custom event MyAzimuthEvent(this, New AzimuthEventArgs(MyAzimuth)); } </code> </example> <seealso cref="T:StormSource.Gps.Azimuth">Azimuth Class</seealso> <seealso cref="T:StormSource.Gps.AzimuthEventHandler">AzimuthEventHandler Delegate</seealso> </member><member name="M:StormSource.Gps.DifferentialGpsEventArgs.#ctor(StormSource.Gps.DifferentialGps)"> <summary> Creates a new instance. </summary> <param name="differentialGps">Differential GPS information provided by a DGPS/WAAS ground station.</param> </member><member name="P:StormSource.Gps.DifferentialGpsEventArgs.DifferentialGps"> <summary> Represents differential GPS information used during a DGPS/WAAS-related event. </summary> <value></value> </member><member name="T:StormSource.Gps.DifferentialGpsEventArgs"> <summary> Represents information about DGPS/WAAS when a DGPA/WAAS event is raised. </summary> <remarks>This object is used primarily by the <see cref="T:StormSource.Gps.DifferentialGps">DifferentialGps</see> class to provide notification when new DGPS/WAAS corrective information has been processed by the GPS device.</remarks> <example>This example demonstrates how to use this class when raising an event. <code lang="VB"> ' Declare a new event Dim MyDifferentialGpsEvent As DifferentialGpsEventHandler ' Create an DifferentialGps of 90° Dim MyDifferentialGps As New DifferentialGps(90) Sub Main() ' Raise our custom event RaiseEvent MyDifferentialGpsEvent(Me, New DifferentialGpsEventArgs(MyDifferentialGps)) End Sub </code> <code lang="C#"> // Declare a new event DifferentialGpsEventHandler MyDifferentialGpsEvent; // Create an DifferentialGps of 90° DifferentialGps MyDifferentialGps = new DifferentialGps(90); void Main() { // Raise our custom event MyDifferentialGpsEvent(this, New DifferentialGpsEventArgs(MyDifferentialGps)); } </code> </example> <seealso cref="P:StormSource.Gps.Receiver.DifferentialGps">DifferentialGps Property (Receiver Class)</seealso> <seealso cref="T:StormSource.Gps.DifferentialGps">DifferentialGps Class</seealso> </member><member name="M:StormSource.Gps.CrossTrackErrorEventArgs.#ctor(StormSource.Gps.CrossTrackError)"> <summary> Creates a new instance with the specified cross-track error measurement. </summary> <param name="CrossTrackError">A <strong>CrossTrackError</strong> object describing the distance off-course and recommended steering direction to get back on course.</param> </member><member name="P:StormSource.Gps.CrossTrackErrorEventArgs.CrossTrackError"> <summary> Represents cross-track error information used during a cross-track-error related event. </summary> <value>A <strong>CrossTrackError</strong> object.</value> </member><member name="T:StormSource.Gps.CrossTrackErrorEventArgs"> <summary> Represents information about cross-track error when a cross-track-error related event is raised. </summary> <remarks>This object is used primarily by the <see cref="T:StormSource.Gps.CrossTrackError">CrossTrackError</see> class to provide notification when updated cross-track error information has been received from the GPS device.</remarks> <example>This example demonstrates how to use this class when raising an event. <code lang="VB"> ' Declare a new event Dim MyCrossTrackErrorEvent As CrossTrackErrorEventHandler ' Create an CrossTrackError of 90° Dim MyCrossTrackError As New CrossTrackError(90) Sub Main() ' Raise our custom event RaiseEvent MyCrossTrackErrorEvent(Me, New CrossTrackErrorEventArgs(MyCrossTrackError)) End Sub </code> <code lang="C#"> // Declare a new event CrossTrackErrorEventHandler MyCrossTrackErrorEvent; // Create an CrossTrackError of 90° CrossTrackError MyCrossTrackError = new CrossTrackError(90); void Main() { // Raise our custom event MyCrossTrackErrorEvent(this, New CrossTrackErrorEventArgs(MyCrossTrackError)); } </code> </example> <seealso cref="P:StormSource.Gps.Receiver.CrossTrackError">CrossTrackError Property (Receiver Class)</seealso> <seealso cref="T:StormSource.Gps.CrossTrackError">CrossTrackError Class</seealso> </member><member name="M:StormSource.Gps.DateTimeEventArgs.#ctor(System.DateTime)"> <summary> Creates a new instance. </summary> <param name="dateTime">A DateTime object containing a date and time reported by the GPS device.</param> </member><member name="P:StormSource.Gps.DateTimeEventArgs.DateTime"> <summary> A date and time value in UTC time (not adjusted for the local time zone). </summary> <value>A DateTime object containing a date and time reported by the GPS device.</value> <remarks>This date and time value is not adjusted to the local time zone. Use the <see cref="M:System.DateTime.ToLocalTime">ToLocalTime</see> method to adjust to local time.</remarks> <seealso cref="P:StormSource.Gps.DateTimeEventArgs.DateTime">DateTime Class</seealso> <seealso cref="M:System.DateTime.ToLocalTime">ToLocalTime Method (DateTime Class)</seealso> </member><member name="T:StormSource.Gps.DateTimeEventArgs"> <summary> Represents information about the date and time reported by the GPS device. </summary> <remarks>This object is used primarily by the <see cref="P:StormSource.Gps.Receiver.UtcDateTime">UtcDateTime</see> property of the <see cref="T:StormSource.Gps.Receiver">Receiver</see> class to provide notification when updated cross-track error information has been received from the GPS device.</remarks> <example>This example demonstrates how to use this class when raising an event. <code lang="VB"> ' Declare a new event Dim MyDateTimeEvent As DateTimeEventHandler ' Create an DateTime of 90° Dim MyDateTime As New DateTime(90) Sub Main() ' Raise our custom event RaiseEvent MyDateTimeEvent(Me, New DateTimeEventArgs(MyDateTime)) End Sub </code> <code lang="C#"> // Declare a new event DateTimeEventHandler MyDateTimeEvent; // Create an DateTime of 90° DateTime MyDateTime = new DateTime(90); void Main() { // Raise our custom event MyDateTimeEvent(this, New DateTimeEventArgs(MyDateTime)); } </code> </example> <seealso cref="P:StormSource.Gps.Receiver.UtcDateTime">UtcDateTime Property (Receiver Class)</seealso> <seealso cref="T:System.DateTime">DateTime Class</seealso> </member><member name="P:StormSource.Gps.SatelliteCountEventArgs.Count"> <summary> Indicates the number of <see cref="P:StormSource.Gps.SatelliteCollection.ActiveCount">active</see>, <see cref="P:StormSource.Gps.SatelliteCollection.TrackedCount">tracked</see> or <see cref="P:StormSource.Gps.SatelliteCollection.FixedCount">fixed</see> satellites, as indicated by the <see cref="P:StormSource.Gps.SatelliteCountEventArgs.Type">Type</see> property. </summary> <seealso cref="P:StormSource.Gps.SatelliteCountEventArgs.Type">Type Property</seealso> <seealso cref="T:StormSource.Gps.SatelliteCollection">SatelliteCollection Class</seealso> <seealso cref="P:StormSource.Gps.SatelliteCollection.ActiveCount">ActiveCount Property (SatelliteCollection Class)</seealso> <seealso cref="P:StormSource.Gps.SatelliteCollection.TrackedCount">TrackedCount Property (SatelliteCollection Class)</seealso> <seealso cref="P:StormSource.Gps.SatelliteCollection.FixedCount">FixedCount Property (SatelliteCollection Class)</seealso> </member><member name="P:StormSource.Gps.SatelliteCountEventArgs.Type"> <summary> Indicates whether the Count property is describing the of <see cref="P:StormSource.Gps.SatelliteCollection.ActiveCount">active</see>, <see cref="P:StormSource.Gps.SatelliteCollection.TrackedCount">tracked</see> or <see cref="P:StormSource.Gps.SatelliteCollection.FixedCount">fixed</see> satellites. </summary> <seealso cref="P:StormSource.Gps.SatelliteCountEventArgs.Count">Count Property</seealso> <seealso cref="T:StormSource.Gps.SatelliteCollection">SatelliteCollection Class</seealso> <seealso cref="P:StormSource.Gps.SatelliteCollection.ActiveCount">ActiveCount Property (SatelliteCollection Class)</seealso> <seealso cref="P:StormSource.Gps.SatelliteCollection.TrackedCount">TrackedCount Property (SatelliteCollection Class)</seealso> <seealso cref="P:StormSource.Gps.SatelliteCollection.FixedCount">FixedCount Property (SatelliteCollection Class)</seealso> </member><member name="T:StormSource.Gps.SatelliteCountEventArgs"> <summary> Represents information about satellite count statistics when a satellite statistic-related event is raised. </summary> <remarks>This object is used primarily by the <see cref="T:StormSource.Gps.SatelliteCollection">SatelliteCollection</see> class to provide notification when the number of <see cref="P:StormSource.Gps.SatelliteCollection.ActiveCount">active</see>, <see cref="P:StormSource.Gps.SatelliteCollection.TrackedCount">tracked</see> or <see cref="P:StormSource.Gps.SatelliteCollection.FixedCount">fixed</see> satellites has changed.</remarks> <example>This example demonstrates how to use this class when raising an event. <code lang="VB"> ' Declare a new event Dim MySatelliteCountEvent As SatelliteCountEventHandler ' Create an SatelliteCount of 90° Dim MySatelliteCount As New SatelliteCount(90) Sub Main() ' Raise our custom event RaiseEvent MySatelliteCountEvent(Me, New SatelliteCountEventArgs(MySatelliteCount)) End Sub </code> <code lang="C#"> // Declare a new event SatelliteCountEventHandler MySatelliteCountEvent; // Create an SatelliteCount of 90° SatelliteCount MySatelliteCount = new SatelliteCount(90); void Main() { // Raise our custom event MySatelliteCountEvent(this, New SatelliteCountEventArgs(MySatelliteCount)); } </code> </example> <seealso cref="T:StormSource.Gps.SatelliteCollection">SatelliteCollection Class</seealso> <seealso cref="P:StormSource.Gps.SatelliteCollection.ActiveCount">ActiveCount Property (SatelliteCollection Class)</seealso> <seealso cref="P:StormSource.Gps.SatelliteCollection.TrackedCount">TrackedCount Property (SatelliteCollection Class)</seealso> <seealso cref="P:StormSource.Gps.SatelliteCollection.FixedCount">FixedCount Property (SatelliteCollection Class)</seealso> </member><member name="M:StormSource.Gps.SatelliteEventArgs.#ctor(StormSource.Gps.Satellite)"> <summary> Creates a new instance. </summary> <param name="Satellite"></param> </member><member name="P:StormSource.Gps.SatelliteEventArgs.Satellite"> <summary> Indicates which satellite is the target of the event. </summary> <value>A <strong>Satellite</strong> object containing modified information.</value> </member><member name="T:StormSource.Gps.SatelliteEventArgs"> <summary> Represents information about a satellite when a satellite-related event is raised. </summary> <remarks>This object is used primarily by the <see cref="T:StormSource.Gps.Satellite">Satellite</see> class to provide notification when information such as <see cref="P:StormSource.Gps.Satellite.Azimuth">azimuth</see>, <see cref="P:StormSource.Gps.Satellite.Elevation">elevation</see>, or <see cref="P:StormSource.Gps.Satellite.SignalToNoiseRatio">radio signal strength</see> has changed.</remarks> <example>This example demonstrates how to use this class when raising an event. <code lang="VB"> ' Start a new receiver Dim MyReceiver As New Receiver() ' Declare a new event Dim MySatelliteEvent As SatelliteEventHandler ' Get a handle on the first satellite in the receiver's collection Dim MySatellite As Satellite = MyReceiver.Satellites(0) Sub Main() ' Raise our custom event RaiseEvent MySatelliteEvent(Me, New SatelliteEventArgs(MySatellite)) End Sub </code> <code lang="C#"> // Start a new receiver Receiver MyReceiver = new Receiver(); // Declare a new event SatelliteEventHandler MySatelliteEvent; // Create an Satellite of 90° Satellite MySatellite = new Satellite(90); void Main() { // Raise our custom event MySatelliteEvent(this, New SatelliteEventArgs(MySatellite)); } </code> </example> <seealso cref="T:StormSource.Gps.Satellite">SatelliteCollection Class</seealso> <seealso cref="P:StormSource.Gps.Satellite.Azimuth">Azimuth Property (Satellite Class)</seealso> <seealso cref="P:StormSource.Gps.Satellite.Elevation">Elevation Property (Satellite Class)</seealso> <seealso cref="P:StormSource.Gps.Satellite.SignalToNoiseRatio">SignalToNoiseRatio Property (Satellite Class)</seealso> </member><member name="M:StormSource.Gps.SentenceEventArgs.#ctor(System.String,StormSource.Gps.SentenceType)"> <summary> Creates a new instance with the specified block of raw GPS data and a flag indicating if the sentence was fully parsed. </summary> <param name="sentence">A <strong>String</strong> containing raw GPS data.</param> <param name="sentenceType">A value from the <see cref="T:StormSource.Gps.SentenceType">SentenceType</see> enumeration indicating if the sentence was fully parsed or not.</param> <seealso cref="P:StormSource.Gps.SentenceEventArgs.Type">Type Property</seealso> <seealso cref="P:StormSource.Gps.SentenceEventArgs.Sentence">Sentence Property</seealso> </member><member name="P:StormSource.Gps.SentenceEventArgs.Sentence"> <summary> Stores one line of raw GPS data. </summary> <value>A String containing one line of raw NMEA or Garmin® text data.</value> <remarks>When using the NMEA-0183 or Garmin® text protocols, this property stores text for one individual line. For the Garmin® binary protocol, a signature such as "(Garmin waypoint data)" is stored instead of actual binary data.</remarks> <seealso cref="P:StormSource.Gps.SentenceEventArgs.Type">Type Property</seealso> </member><member name="P:StormSource.Gps.SentenceEventArgs.Type"> <summary> Indicates if the sentence was completely processed with no errors or warnings. </summary> <value>A value from the SentenceType enumeration.</value> <remarks>If the GPS.NET processing engine is able to completely parse the sentence with no errors or warnings, this property stores a value of <strong>Recognized</strong>. If the sentence was only partially processed or skipped due to a checksum error, a value of <strong>Unrecognized</strong> is stored.</remarks> <seealso cref="P:StormSource.Gps.SentenceEventArgs.Sentence">Sentence Property</seealso> </member><member name="T:StormSource.Gps.SentenceEventArgs"> <summary> Represents information about raw data received from a GPS device. </summary> <remarks>This object is used primarily by the <see cref="E:StormSource.Gps.Receiver.SentenceReceived(System.Object,StormSource.Gps.SentenceEventArgs)">SentenceReceived</see> and <see cref="E:StormSource.Gps.Receiver.UnrecognizedSentenceReceived(System.Object,StormSource.Gps.SentenceEventArgs)">UnrecognizedSentenceReceived</see> events of the <see cref="T:StormSource.Gps.Receiver">Receiver</see> class to provide notification when raw data has been received from the GPS device.</remarks> <example>This example demonstrates how to use this class when raising an event. <code lang="VB"> ' Declare a new event Dim MySentenceEvent As SentenceEventHandler ' Create an NMEA $GPGLL sentence Dim MySentence As String = "$GPGLL,4122,N,14628,W,104243.00,A,D*7E" Sub Main() ' Raise our custom event, also indicating that the sentence was completely recognized RaiseEvent MySentenceEvent(Me, New SentenceEventArgs(MySentence, SentenceType.Recognized)) End Sub </code> <code lang="C#"> // Declare a new event SentenceEventHandler MySentenceEvent; // Create an NMEA $GPGLL sentence string MySentence = "$GPGLL,4122,N,14628,W,104243.00,A,D*7E" void Main() { // Raise our custom event, also indicating that the sentence was completely recognized MySentenceEvent(this, New SentenceEventArgs(MySentence, SentenceType.Recognized)); } </code> </example> <seealso cref="T:StormSource.Gps.Receiver">Receiver Class</seealso> <seealso cref="E:StormSource.Gps.Receiver.SentenceReceived(System.Object,StormSource.Gps.SentenceEventArgs)">SentenceReceived Event (Receiver Class)</seealso> <seealso cref="E:StormSource.Gps.Receiver.UnrecognizedSentenceReceived(System.Object,StormSource.Gps.SentenceEventArgs)">UnrecognizedSentenceReceived Event (Receiver Class)</seealso> </member><member name="M:StormSource.Gps.ErrorEventArgs.#ctor(System.ApplicationException)"> <summary> Creates a new instance containing the specified exception object. </summary> <param name="exception">An <strong>ApplicationException</strong> object or derivitive describing the error.</param> </member><member name="P:StormSource.Gps.ErrorEventArgs.Exception"> <summary> Indicates information about the error and its location within a module. </summary> <value>An <strong>ApplicationException</strong> object or derivitive describing the error.</value> </member><member name="T:StormSource.Gps.ErrorEventArgs"> <summary> Represents information about an exception when an error-related event is raised. </summary> <remarks>This object is used throughout the GPS.NET framework to provide notification when either of two situations occur: <list> <item>An exception is thrown which cannot be trapped via a Try..Catch block (such as from a separate thread)</item> <item>An exception is thrown which can be recovered from and should not halt the current operation.</item> </list> Most frequently, this class is used when a parsing exception occurs via the Parse method or during automatic data collection.</remarks> <example>This example demonstrates how to use this class when raising an event. <code lang="VB"> ' Create a new exception Dim MyException As New ApplicationException("The error was successfully created.") ' Declare a new event Dim MyErrorEvent As ErrorEventHandler Sub Main() ' Raise our custom event RaiseEvent MyErrorEvent(Me, New ErrorEventArgs(MyException)) End Sub </code> <code lang="C#"> // Create a new exception ApplicationException MyException = new ApplicationException("The error was successfully created.") // Declare a new event ErrorEventHandler MyErrorEvent; void Main() { // Raise our custom event MySatelliteEvent(this, New ErrorEventArgs(MyException)); } </code> </example> <seealso cref="T:StormSource.Gps.GpsException">GpsException Class</seealso> <seealso cref="T:StormSource.Gps.ImmutableObjectException">ImmutableObjectException Class</seealso> <seealso cref="T:StormSource.Gps.ParsingException">ParsingException Class</seealso> </member><member name="M:StormSource.Gps.FixMethodEventArgs.#ctor(StormSource.Gps.FixMethod)"> <summary> Creates a new instance with the specified fix method. </summary> <param name="fixMethod">A value from the <strong>FixMethod</strong> enumeration.</param> <remarks></remarks> </member><member name="P:StormSource.Gps.FixMethodEventArgs.FixMethod"> <summary> Indicates if the GPS device has no fix, a 2-D fix, or a 3-D fix. </summary> <value>A value from the <strong>FixMethod</strong> enumeration.</value> <remarks>A device is considered to have a "2-D" fix if there are three satellites involved in the fix. A 2-D fix means that position information is available, but not altitude. If at least four satellites are fixed, both position and altitude are known, and the fix is considered 3-D.</remarks> <seealso cref="P:StormSource.Gps.Receiver.FixMethod">FixMethod Property (Receiver Class)</seealso> </member><member name="T:StormSource.Gps.FixMethodEventArgs"> <summary> Represents information about the method used to obtain a fix when a fix-related event is raised. </summary> <remarks>This object is used primarily by the <see cref="E:StormSource.Gps.Receiver.FixMethodChanged(System.Object,StormSource.Gps.FixMethodEventArgs)">FixMethodChanged</see> event of the <see cref="T:StormSource.Gps.Receiver">Receiver</see> class to provide notification when updated fix method information has been received from the GPS device.</remarks> <example>This example demonstrates how to use this class when raising an event. <code lang="VB"> ' Declare a new event Dim MyFixMethodEvent As FixMethodEventHandler ' Create a FixMethod signifying a 3-D fix (both position and altitude) Dim MyFixMethod As FixMethod = FixMethod.Fix3D Sub Main() ' Raise our custom event RaiseEvent MyFixMethodEvent(Me, New FixMethodEventArgs(MyFixMethod)) End Sub </code> <code lang="C#"> // Declare a new event FixMethodEventHandler MyFixMethodEvent; // Create a FixMethod signifying a 3-D fix (both position and altitude) FixMethod MyFixMethod = FixMethod.Fix3D; void Main() { // Raise our custom event MyFixMethodEvent(this, New FixMethodEventArgs(MyFixMethod)); } </code> </example> <seealso cref="P:StormSource.Gps.Receiver.FixMethod">FixMethod Property (Receiver Class)</seealso> <seealso cref="T:StormSource.Gps.Receiver">Receiver Class</seealso> </member><member name="M:StormSource.Gps.FixLikelihoodEventArgs.#ctor(StormSource.Gps.FixLikelihood)"> <summary> Creates a new instance with the specified fix Likelihood. </summary> <param name="fixLikelihood">A value from the <strong>FixLikelihood</strong> enumeration.</param> <remarks></remarks> </member><member name="P:StormSource.Gps.FixLikelihoodEventArgs.FixLikelihood"> <summary> Indicates if the GPS device has no fix, a 2-D fix, or a 3-D fix. </summary> <value>A value from the <strong>FixLikelihood</strong> enumeration.</value> <remarks>A device is considered to have a "2-D" fix if there are three satellites involved in the fix. A 2-D fix means that position information is available, but not altitude. If at least four satellites are fixed, both position and altitude are known, and the fix is considered 3-D.</remarks> <seealso cref="P:StormSource.Gps.Receiver.FixLikelihood">FixLikelihood Property (Receiver Class)</seealso> </member><member name="T:StormSource.Gps.FixLikelihoodEventArgs"> <summary> Represents information about the likelihood that a fix will be sustained (or obtained) when a when a fix-related event is raised. </summary> <remarks>This object is used primarily by the <see cref="E:StormSource.Gps.Receiver.FixLikelihoodChanged(System.Object,StormSource.Gps.FixLikelihoodEventArgs)">FixLikelihoodChanged</see> event of the <see cref="T:StormSource.Gps.Receiver">Receiver</see> class to provide notification when combined satellite radio signal strength has changed.</remarks> <example>This example demonstrates how to use this class when raising an event. <code lang="VB"> ' Declare a new event Dim MyFixLikelihoodEvent As FixLikelihoodEventHandler ' Create a FixLikelihood signifying a 3-D fix (both position and altitude) Dim MyFixLikelihood As FixLikelihood = FixLikelihood.Fix3D Sub Main() ' Raise our custom event RaiseEvent MyFixLikelihoodEvent(Me, New FixLikelihoodEventArgs(MyFixLikelihood)) End Sub </code> <code lang="C#"> // Declare a new event FixLikelihoodEventHandler MyFixLikelihoodEvent; // Create a FixLikelihood signifying a 3-D fix (both position and altitude) FixLikelihood MyFixLikelihood = FixLikelihood.Fix3D; void Main() { // Raise our custom event MyFixLikelihoodEvent(this, New FixLikelihoodEventArgs(MyFixLikelihood)); } </code> </example> <seealso cref="P:StormSource.Gps.Receiver.FixLikelihood">FixLikelihood Property (Receiver Class)</seealso> <seealso cref="T:StormSource.Gps.Receiver">Receiver Class</seealso> </member><member name="M:StormSource.Gps.FixModeEventArgs.#ctor(StormSource.Gps.FixMode)"> <summary> Creates a new instance with the specified fix method. </summary> <param name="fixMode">A value from the <strong>FixMode</strong> enumeration.</param> <remarks></remarks> </member><member name="P:StormSource.Gps.FixModeEventArgs.FixMode"> <summary> Indicates if the GPS device is choosing the <see cref="T:StormSource.Gps.FixMethod">fix method</see> automatically. </summary> <value>A value from the <strong>FixMode</strong> enumeration.</value> <remarks>A vast majority of GPS devices calculate the fix mode automatically. This is because the process of determining the fix mode is a simple process: if there are three fixed satellites, a 2-D fix is obtained; if there are four or more fixed satellites, a 3-D fix is in progress. Any less than three satellites means that no fix is possible. </remarks> <seealso cref="P:StormSource.Gps.Receiver.FixMode">FixMode Property (Receiver Class)</seealso> </member><member name="T:StormSource.Gps.FixModeEventArgs"> <summary> Represents information about whether the fix method is chosen automatically when a fix-related event is raised. </summary> <remarks>This object is used primarily by the <see cref="E:StormSource.Gps.Receiver.FixModeChanged(System.Object,StormSource.Gps.FixModeEventArgs)">FixModeChanged</see> event of the <see cref="T:StormSource.Gps.Receiver">Receiver</see> class to provide notification when the receiver switches fix modes from <strong>Automatic</strong> to <strong>Manual</strong> or vice-versa.</remarks> <example>This example demonstrates how to use this class when raising an event. <code lang="VB"> ' Declare a new event Dim MyFixModeEvent As FixModeEventHandler ' Create a FixMode signifying that the fix method is being chosen automatically Dim MyFixMode As FixMode = FixMode.Automatic Sub Main() ' Raise our custom event RaiseEvent MyFixModeEvent(Me, New FixModeEventArgs(MyFixMode)) End Sub </code> <code lang="C#"> // Declare a new event FixModeEventHandler MyFixModeEvent; // Create a FixMode signifying that the fix method is being chosen automatically FixMode MyFixMode = FixMode.Automatic; void Main() { // Raise our custom event MyFixModeEvent(this, New FixModeEventArgs(MyFixMode)); } </code> </example> <seealso cref="P:StormSource.Gps.Receiver.FixMethod">FixMethod Property (Receiver Class)</seealso> <seealso cref="T:StormSource.Gps.Receiver">Receiver Class</seealso> </member><member name="M:StormSource.Gps.FixQualityEventArgs.#ctor(StormSource.Gps.FixQuality)"> <summary> Creates a new instance with the specified fix quality measurement. </summary> <param name="fixQuality">A value from the <strong>FixQuality</strong> enumeration.</param> <remarks></remarks> </member><member name="P:StormSource.Gps.FixQualityEventArgs.FixQuality"> <summary> Indicates whether the current fix involves satellites and/or DGPS/WAAS ground stations. </summary> <value>A value from the <strong>FixQuality</strong> enumeration.</value> <remarks></remarks> </member><member name="T:StormSource.Gps.FixQualityEventArgs"> <summary> Represents information about the type of fix obtained when fix-related event is raised. </summary> <remarks>This object is used primarily by the <see cref="E:StormSource.Gps.Receiver.FixQualityChanged(System.Object,StormSource.Gps.FixQualityEventArgs)">FixQualityChanged</see> event of the <see cref="T:StormSource.Gps.Receiver">Receiver</see> class to provide notification when the receiver switches fix modes from <strong>Automatic</strong> to <strong>Manual</strong> or vice-versa.</remarks> <example>This example demonstrates how to use this class when raising an event. <code lang="VB"> ' Declare a new event Dim MyFixQualityEvent As FixQualityEventHandler ' Create a FixQuality signifying that a differential GPS fix is obtained Dim MyFixQuality As FixQuality = FixQuality.DifferentialGpsFix Sub Main() ' Raise our custom event RaiseEvent MyFixQualityEvent(Me, New FixQualityEventArgs(MyFixQuality)) End Sub </code> <code lang="C#"> // Declare a new event FixQualityEventHandler MyFixQualityEvent; // Create a FixQuality signifying that a differential GPS fix is obtained FixQuality MyFixQuality = FixQuality.DifferentialGpsFix; void Main() { // Raise our custom event MyFixQualityEvent(this, New FixQualityEventArgs(MyFixQuality)); } </code> </example> <seealso cref="P:StormSource.Gps.Receiver.FixMethod">FixMethod Property (Receiver Class)</seealso> <seealso cref="T:StormSource.Gps.Receiver">Receiver Class</seealso> </member><member name="M:StormSource.Gps.LongitudeEventArgs.#ctor(StormSource.Gps.Longitude)"> <summary> Creates a new instance which contains the specified <strong>Longitude</strong> object. </summary> <param name="longitude">a <strong>Longitude</strong> object which is the target of the event.</param> <remarks></remarks> </member><member name="P:StormSource.Gps.LongitudeEventArgs.Longitude"> <summary> Indicates the longitude object whose properties have changed. </summary> <value>A <strong>Longitude</strong> object.</value> <remarks></remarks> <seealso cref="P:StormSource.Gps.Position.Longitude">Longitude Property (Position Class)</seealso> <seealso cref="T:StormSource.Gps.Position">Position Class</seealso> <seealso cref="P:StormSource.Gps.LongitudeEventArgs.Longitude">Longitude Class</seealso> </member><member name="T:StormSource.Gps.LongitudeEventArgs"> <summary> Represents information about a longitude measurement when a longitude-related event is raised. </summary> <remarks>This object is used primarily by the <see cref="E:StormSource.Gps.Position.LongitudeChanged(System.Object,StormSource.Gps.LongitudeEventArgs)">LongitudeChanged</see> event of the <see cref="T:StormSource.Gps.Position">Position</see> class to provide notification when the longitude has changed.</remarks> <example>This example demonstrates how to use this class when raising an event. <code lang="VB"> ' Declare a new event Dim MyLongitudeEvent As LongitudeEventHandler ' Create a new longitude of 105 degrees west Dim MyLongitude As longitude = New Longitude("105°W"); Sub Main() ' Raise our custom event RaiseEvent MyLongitudeEvent(Me, New LongitudeEventArgs(MyLongitude)) End Sub </code> <code lang="C#"> // Declare a new event LongitudeEventHandler MyLongitudeEvent; // Create a new longitude of 105 degrees west Longitude MyLongitude = new Longitude("105°W"); void Main() { // Raise our custom event MyLongitudeEvent(this, New LongitudeEventArgs(MyLongitude)); } </code> </example> <seealso cref="P:StormSource.Gps.Position.Longitude">Longitude Property (Position Class)</seealso> <seealso cref="T:StormSource.Gps.Position">Position Class</seealso> <seealso cref="T:StormSource.Gps.Longitude">Longitude Class</seealso> </member><member name="M:StormSource.Gps.LatitudeEventArgs.#ctor(StormSource.Gps.Latitude)"> <summary> Creates a new instance which contains the specified <strong>Latitude</strong> object. </summary> <param name="latitude">a <strong>Latitude</strong> object which is the target of the event.</param> <remarks></remarks> </member><member name="P:StormSource.Gps.LatitudeEventArgs.Latitude"> <summary> Indicates the latitude object whose properties have changed. </summary> <value>A <strong>Latitude</strong> object.</value> <remarks></remarks> <seealso cref="P:StormSource.Gps.Position.Latitude">Latitude Property (Position Class)</seealso> <seealso cref="T:StormSource.Gps.Position">Position Class</seealso> <seealso cref="P:StormSource.Gps.LatitudeEventArgs.Latitude">Latitude Class</seealso> </member><member name="T:StormSource.Gps.LatitudeEventArgs"> <summary> Represents information about a latitude measurement when a latitude-related event is raised. </summary> <remarks>This object is used primarily by the <see cref="E:StormSource.Gps.Position.LatitudeChanged(System.Object,StormSource.Gps.LatitudeEventArgs)">LatitudeChanged</see> event of the <see cref="T:StormSource.Gps.Position">Position</see> class to provide notification when the latitude has changed.</remarks> <example>This example demonstrates how to use this class when raising an event. <code lang="VB"> ' Declare a new event Dim MyLatitudeEvent As LatitudeEventHandler ' Create a new latitude of 39 degrees north Dim MyLatitude As latitude = New Latitude("39°N"); Sub Main() ' Raise our custom event RaiseEvent MyLatitudeEvent(Me, New LatitudeEventArgs(MyLatitude)) End Sub </code> <code lang="C#"> // Declare a new event LatitudeEventHandler MyLatitudeEvent; // Create a new latitude of 39 degrees north Latitude MyLatitude = new Latitude("39°N"); void Main() { // Raise our custom event MyLatitudeEvent(this, New LatitudeEventArgs(MyLatitude)); } </code> </example> <seealso cref="P:StormSource.Gps.Position.Latitude">Latitude Property (Position Class)</seealso> <seealso cref="T:StormSource.Gps.Position">Position Class</seealso> <seealso cref="T:StormSource.Gps.Latitude">Latitude Class</seealso> </member><member name="M:StormSource.Gps.TimeSpanEventArgs.#ctor(System.TimeSpan)"> <summary> Creates a new instance containing the specified TimeSpan object. </summary> <param name="timeSpan">A <strong>TimeSpan</strong> object describing a length of time.</param> <remarks></remarks> <seealso cref="P:StormSource.Gps.TimeSpanEventArgs.TimeSpan">TimeSpan Property</seealso> <seealso cref="T:System.TimeSpan">TimeSpan Structure</seealso> </member><member name="P:StormSource.Gps.TimeSpanEventArgs.TimeSpan"> <summary> Indicates a length of time which is the target of the event. </summary> <value>A <strong>TimeSpan</strong> object describing a length of time.</value> <remarks></remarks> <seealso cref="T:System.TimeSpan">TimeSpan Structure</seealso> </member><member name="T:StormSource.Gps.TimeSpanEventArgs"> <summary> Represents information about a length of time calculated or reported by a GPS device. </summary> <remarks>This object is used primarily by the <see cref="P:StormSource.Gps.Device.BatteryLife">BatteryLife</see> property of the <see cref="T:StormSource.Gps.Device">Device</see> class to provide notification when the remaining battery life has diminished.</remarks> <example>This example demonstrates how to use this class when raising an event. <code lang="VB"> ' Declare a new event Dim MyTimeSpanEvent As TimeSpanEventHandler ' Create an TimeSpan of 90° Dim MyTimeSpan As New TimeSpan(90) Sub Main() ' Raise our custom event RaiseEvent MyTimeSpanEvent(Me, New TimeSpanEventArgs(MyTimeSpan)) End Sub </code> <code lang="C#"> // Declare a new event TimeSpanEventHandler MyTimeSpanEvent; // Create an TimeSpan of 90° TimeSpan MyTimeSpan = new TimeSpan(90); void Main() { // Raise our custom event MyTimeSpanEvent(this, New TimeSpanEventArgs(MyTimeSpan)); } </code> </example> <seealso cref="P:StormSource.Gps.Device.BatteryLife">BatteryLife Property (Device Class)</seealso> <seealso cref="T:StormSource.Gps.Device">Device Class</seealso> <seealso cref="T:System.TimeSpan">TimeSpan Structure</seealso> </member><member name="P:StormSource.Gps.DeviceEventArgs.Device"> <summary> Represents the Device object which is the target of the event. </summary> <value></value> </member><member name="T:StormSource.Gps.DeviceEventArgs"> <summary>Represents information about a GPS device when a GPS device-related event is raised.</summary> <remarks>This class is typically used for events in the <see cref="T:StormSource.Gps.Device">Device</see> class to provide notification when the device has become identified.</remarks> <seealso cref="T:StormSource.Gps.Device">Device Class</seealso> <seealso cref="T:StormSource.Gps.DeviceEventHandler">DeviceEventHandler Delegate</seealso> </member><member name="M:StormSource.Gps.DilutionOfPrecisionEventArgs.#ctor(StormSource.Gps.DilutionOfPrecision)"> <summary> Creates a new instance with the specified DOP measurement. </summary> <param name="DilutionOfPrecision">A DilutionOfPrecision object which is the target of the event.</param> </member><member name="P:StormSource.Gps.DilutionOfPrecisionEventArgs.DilutionOfPrecision"> <summary> A DilutionOfPrecision object which is the target of the event. </summary> <value></value> </member><member name="T:StormSource.Gps.DilutionOfPrecisionEventArgs"> <summary>Represents information about a DOP measurement when an DOP-related event is raised.</summary> <remarks>This class is typically used for events in the <see cref="T:StormSource.Gps.DilutionOfPrecision">DilutionOfPrecision</see> class to provide notification when hours, minutes, decimal minutes or seconds properties have changed.</remarks> <example>This example demonstrates how to use this class when raising an event. <code lang="VB"> ' Declare a new event Dim MyDilutionOfPrecisionEvent As DilutionOfPrecisionEventHandler ' Create a DilutionOfPrecision of 30 horizontal Dim MyDilutionOfPrecision As New DilutionOfPrecision(DilutionOfPrecisionType.Horizontal, 30.0) Sub Main() ' Raise our custom event RaiseEvent MyDilutionOfPrecisionEvent(Me, New DilutionOfPrecisionEventArgs(MyDilutionOfPrecision)) End Sub </code> <code lang="C#"> // Declare a new event DilutionOfPrecisionEventHandler MyDilutionOfPrecisionEvent; // Create a DilutionOfPrecision of 30 horizontal DilutionOfPrecision MyDilutionOfPrecision = new DilutionOfPrecision(DilutionOfPrecisionType.Horizontal, 30.0); void Main() { // Raise our custom event MyDilutionOfPrecisionEvent(this, New DilutionOfPrecisionEventArgs(MyDilutionOfPrecision)); } </code> </example> <seealso cref="T:StormSource.Gps.DilutionOfPrecision">DilutionOfPrecision Class</seealso> <seealso cref="T:StormSource.Gps.DilutionOfPrecisionEventHandler">DilutionOfPrecisionEventHandler Delegate</seealso> </member><member name="M:StormSource.Gps.DistanceEventArgs.#ctor(StormSource.Gps.Distance)"> <summary> Creates a new instance containing the specified Distance object. </summary> </member><member name="P:StormSource.Gps.DistanceEventArgs.Distance"> <summary> Represents information about a distance measurement when an distance-related event is raised. </summary> <value>A <strong>Distance</strong> object containing a property which has changed.</value> <remarks>This class is used by the <see cref="P:StormSource.Gps.DistanceEventArgs.Distance">Distance</see> class to provide notification when hours, minutes, or seconds properties have changed.</remarks> <seealso cref="P:StormSource.Gps.DistanceEventArgs.Distance">Distance Class</seealso> </member><member name="T:StormSource.Gps.DistanceEventArgs"> <summary>Represents information about a distance when an distance-related event is raised.</summary> <remarks>This class is typically used for events in the <see cref="T:StormSource.Gps.Distance">Distance</see> class to provide notification when hours, minutes, decimal minutes or seconds properties have changed.</remarks> <example>This example demonstrates how to use this class when raising an event. <code lang="VB"> ' Declare a new event Dim MyDistanceEvent As DistanceEventHandler ' Create a distance of 125 kilometers Dim MyDistance As New Distance(125, DistanceUnit.Kilometers) Sub Main() ' Raise our custom event RaiseEvent MyDistanceEvent(Me, New DistanceEventArgs(MyDistance)) End Sub </code> <code lang="C#"> // Declare a new event DistanceEventHandler MyDistanceEvent; // Create a distance of 125 kilometers Distance MyDistance = new Distance(125, DistanceUnit.Kilometers); void Main() { // Raise our custom event MyDistanceEvent(this, New DistanceEventArgs(MyDistance)); } </code> </example> <seealso cref="T:StormSource.Gps.Distance">Distance Class</seealso> <seealso cref="T:StormSource.Gps.DistanceEventHandler">DistanceEventHandler Delegate</seealso> </member><member name="M:StormSource.Gps.WaypointEventArgs.#ctor(StormSource.Gps.Waypoint)"> <summary> Creates a new instance containing the specified Waypoint object. </summary> </member><member name="T:StormSource.Gps.WaypointEventArgs"> <summary>Represents information about a Waypoint when an Waypoint-related event is raised.</summary> <remarks>This class is typically used for events in the <see cref="T:StormSource.Gps.Waypoint">Waypoint</see> class to provide notification when hours, minutes, decimal minutes or seconds properties have changed.</remarks> <seealso cref="T:StormSource.Gps.Waypoint">Waypoint Class</seealso> <seealso cref="T:StormSource.Gps.WaypointEventHandler">WaypointEventHandler Delegate</seealso> </member><member name="E:StormSource.Gps.IPersistable.BecomesDirty(System.Object,System.EventArgs)"> <summary> Occurs when the object's parameters become different from those in the data store. </summary> </member><member name="E:StormSource.Gps.IPersistable.BecomesClean(System.Object,System.EventArgs)"> <summary> Occurs when the object's parameters now match those in the data store. </summary> </member><member name="P:StormSource.Gps.IPersistable.IsDirty"> <summary> Indicates if the object's properties differ from those in the data store. </summary> </member><member name="M:StormSource.Gps.IPersistable.Save"> <summary> Commits any changes to the object to the data store. </summary> </member><member name="T:StormSource.Gps.IPersistable"> <summary> Adds functionality to an object which can be persisted in a data store </summary> </member><member name="F:StormSource.Gps.Geodesy.DefaultDatum"> <summary>Returns the WGS1984 datum object.</summary> <remarks>This property returns the default datum used by a majority of GPS devices, World Geodetic System 1984.</remarks> <seealso cref="T:StormSource.Gps.Datum">Datum Class</seealso> <seealso cref="F:StormSource.Gps.Geodesy.DefaultEllipsoid">DefaultEllipsoid Field</seealso> </member><member name="F:StormSource.Gps.Geodesy.DefaultEllipsoid"> <summary>Returns the WGS1984 ellipsoid object.</summary> <remarks>This property returns the default ellipsoid used by a majority of GPS devices, World Geodetic System 1984.</remarks> <seealso cref="T:StormSource.Gps.Ellipsoid">Ellipsoid Class</seealso> <seealso cref="F:StormSource.Gps.Geodesy.DefaultDatum">DefaultDatum Field</seealso> </member><member name="M:StormSource.Gps.Geodesy.GetEllipsoid(StormSource.Gps.EllipsoidType)"> <summary>Returns a <strong>Ellipsoid</strong> object.</summary> <param name="type">A value from the <strong>EllipsoidType</strong> enumeration.</param> <remarks>This method is typically used to retrieve information about a specific ellipsoid from the built-in list.</remarks> <seealso cref="T:StormSource.Gps.EllipsoidType">EllipsoidType Enumeration</seealso> <seealso cref="T:StormSource.Gps.Ellipsoid">Ellipsoid Class</seealso> </member><member name="M:StormSource.Gps.Geodesy.GetDatum(StormSource.Gps.DatumType)"> <summary>Returns a <strong>Datum</strong> object.</summary> <param name="type">A value from the <strong>DatumType</strong> enumeration.</param> <remarks>This method is typically used to retrieve information about a specific datum from the built-in list.</remarks> <seealso cref="T:StormSource.Gps.DatumType">DatumType Enumeration</seealso> <seealso cref="T:StormSource.Gps.Datum">Datum Class</seealso> </member><member name="M:StormSource.Gps.Geodesy.GetDatum(System.String)"> <summary>Returns a <strong>Datum</strong> object.</summary> <param name="code">A <strong>String</strong> specifying a built-in or user-defined datum.</param> <remarks>This method is typically used to retrieve information about a user-defined datum.</remarks> <seealso cref="T:StormSource.Gps.DatumType">DatumType Enumeration</seealso> <seealso cref="T:StormSource.Gps.Datum">Datum Class</seealso> </member><member name="M:StormSource.Gps.Geodesy.ToPosition(StormSource.Gps.UtmPosition)"> <summary> Converts a Universal Transverse Mercator (UTM) coordinate to a spherical coordinate. </summary> </member><member name="M:StormSource.Gps.Geodesy.ToUtmPosition(StormSource.Gps.Position)"> <summary> Converts a spherical coordinate to a Universal Transverse Mercator (UTM) coordinate. </summary> </member><member name="M:StormSource.Gps.Geodesy.TranslateTo(StormSource.Gps.Position,StormSource.Gps.MolodenskyTransform,StormSource.Gps.MolodenskyTransform)"> <overloads>Converts a coordinate to another coordinate system.</overloads> </member><member name="M:StormSource.Gps.Geodesy.GetMolodenskyTransform(System.String)"> <overloads>Returns a <strong>MolodenskyTransform</strong> object.</overloads> </member><member name="P:StormSource.Gps.Geodesy.MolodenskyTransforms"> <summary>Returns the entire collection of coordinate conversion transformations.</summary> </member><member name="P:StormSource.Gps.Geodesy.Datums"> <summary>Returns the entire collection of known coordinate system refernce points.</summary> </member><member name="P:StormSource.Gps.Geodesy.Ellipsoids"> <summary> Returns the entire collection of known interpretations of Earth's shape and size. </summary> </member><member name="T:StormSource.Gps.Geodesy"> <summary> Contains information which describes the shape and size of the Earth, as well as information about known coordinate systems and conversions. </summary> <remarks> This non-creatable class provides an organized way to access the complete collection of <see cref="P:StormSource.Gps.Geodesy.Ellipsoids">ellipsoids</see>, <see cref="P:StormSource.Gps.Geodesy.Datums">datums</see>, <see cref="P:StormSource.Gps.Geodesy.MolodenskyTransforms">Molodensky transforms</see>, and coordinate conversions such as to and from UTM and latitude/longitude coordinate systems. </remarks> <example> This example uses the Geodesy class to list information on all known datums and ellipsoids. <code lang="VB"> Dim MyDatum As Datum Dim MyEllipsoid As Ellipsoid ' Output each known datum For Each MyDatum In Geodesy.Datums ' Output information about this datum Debug.WriteLine(MyDatum.Name) Next ' Output each known ellipsoid For Each MyEllipsoid In Geodesy.Ellipsoids ' Output information about this ellipsoid Debug.WriteLine(MyEllipsoid.Name) Next </code> <code lang="C#"> // Output each known datum foreach(Datum MyDatum in Geodesy.Datums) { // Output information about this datum Debug.WriteLine(MyDatum.Name); } // Output each known ellipsoid foreach(Ellipsoid MyEllipsoid in Geodesy.Ellipsoids) { // Output information about this ellipsoid Debug.WriteLine(MyEllipsoid.Name) } </code> </example> <seealso cref="T:StormSource.Gps.Datum">Datum Class</seealso> <seealso cref="T:StormSource.Gps.Ellipsoid">Ellipsoid Class</seealso> <seealso cref="T:StormSource.Gps.MolodenskyTransform">MolodenskyTransform Class</seealso> </member><member name="P:StormSource.Gps.UtmPositionCollection.First"> <summary>Returns the first item in the collection, if one exists.</summary> </member><member name="P:StormSource.Gps.UtmPositionCollection.Last"> <summary>Returns the last item in the collection, if it exists.</summary> </member><member name="M:StormSource.Gps.UtmPositionCollection.Add(StormSource.Gps.UtmPosition)"> <summary>Adds a Position to the end of the collection.</summary> </member><member name="M:StormSource.Gps.UtmPositionCollection.AddRange(System.Collections.ICollection)"> <summary>Adds a collection of Position objects to the current collection.</summary> </member><member name="P:StormSource.Gps.UtmPositionCollection.Item(System.Int32)"> <summary>Returns a Position object a the specified index.</summary> </member><member name="P:StormSource.Gps.UtmPositionCollection.Items"> <summary>Returns an enumerable list of all Positions in the collection.</summary> </member><member name="M:StormSource.Gps.UtmPositionCollection.Translate(StormSource.Gps.Angle,StormSource.Gps.Distance)"> <summary>Shifts the entire collection be the specified bearing and distance.</summary> </member><member name="M:StormSource.Gps.UtmPositionCollection.MinimumTime(StormSource.Gps.Speed)"> <summary> Returns the total travel time when traveling through all positions at the given speed. </summary> </member><member name="M:StormSource.Gps.UtmPositionCollection.MinimumSpeed(System.TimeSpan)"> <summary> Returns the minimum travel speed required to travel through all positions within the given time. </summary> </member><member name="P:StormSource.Gps.UtmPositionCollection.TotalDistance"> <summary>Returns the total distance to travel through all points.</summary> </member><member name="T:StormSource.Gps.UtmPositionCollection"> <summary>Represents an arbitrary collection of locations on the Earth's surface.</summary> <remarks> This collection provides methods which work with a connected group of locations, such as <see cref="P:StormSource.Gps.UtmPositionCollection.TotalDistance">total travel distance</see>, <see cref="M:StormSource.Gps.UtmPositionCollection.MinimumTime(StormSource.Gps.Speed)">total travel time</see>, and <see cref="M:StormSource.Gps.UtmPositionCollection.MinimumSpeed(System.TimeSpan)">minimum travel speed</see>. This collection is the base class for Garmin® position collections such as <see cref="T:StormSource.Gps.WaypointCollection">waypoints</see>. This class is recommended as a base class for custom actions which work with groups of positions. </remarks> </member><member name="M:StormSource.Gps.Datum.#ctor(System.String,System.String,StormSource.Gps.EllipsoidType)"> <summary>Creates a custom datum to use for specialized coordinate conversions.</summary> <remarks> This constructor is typically used to create a custom coordinate system used for specialized coordinate system conversions. </remarks> <param name="name">A <strong>String</strong> containing the user-friendly name for the datum.</param> <param name="code">An upper-case <strong>String</strong> containing a unique code for the datum. </param> <param name="ellipsoid">A value from the <see cref="T:StormSource.Gps.EllipsoidType">EllipsoidType</see> enumeration indicating an interpretation of the Earth's shape. </param> <seealso cref="T:StormSource.Gps.EllipsoidType">EllipsoidType Enumeration</seealso> <seealso cref="P:StormSource.Gps.Datum.Code">Code Property</seealso> <seealso cref="P:StormSource.Gps.Datum.Type">Type Property</seealso> <seealso cref="P:StormSource.Gps.Datum.Name">Name Property</seealso> </member><member name="P:StormSource.Gps.Datum.Code"> <summary>A unique value which allows a datum to be identified in a collection.</summary> <value> Read only. A <strong>String</strong> value containing a unique identifier for the datum. </value> <remarks> This property is typically used by the <see cref="M:StormSource.Gps.Datum.GetDatum(StormSource.Gps.DatumType)">GetDatum</see> method to return a user-defined datum. </remarks> <seealso cref="P:StormSource.Gps.Datum.Type">Type Property</seealso> <seealso cref="P:StormSource.Gps.Datum.Code">Name Property</seealso> <seealso cref="M:StormSource.Gps.Datum.GetDatum(StormSource.Gps.DatumType)">GetDatum Method</seealso> </member><member name="M:StormSource.Gps.Datum.GetDatum(StormSource.Gps.DatumType)"> <summary>Returns a specific datum object based upon the given type.</summary> <returns>A <strong>Datum</strong> object.</returns> <remarks> This method should only be used to return a built-in datum. To access custom datum objects, use a <strong>String</strong> parameter instead of a <strong>DatumType</strong> value. </remarks> <seealso cref="M:StormSource.Gps.Datum.GetDatum(StormSource.Gps.DatumType)">GetDatum Method</seealso> <seealso cref="P:StormSource.Gps.Datum.Type">Type Property</seealso> <param name="datumType"> A value from the <see cref="T:StormSource.Gps.DatumType">DatumType</see> enumeration. </param> </member><member name="M:StormSource.Gps.Datum.GetDatum(System.String)"> <summary>Returns a specific datum object based upon the given code.</summary> <returns>A <strong>Datum</strong> object.</returns> <remarks> This method should only be used to return a built-in or user-defined datum based upon its unique alphanumeric code. </remarks> <seealso cref="M:StormSource.Gps.Datum.GetDatum(StormSource.Gps.DatumType)">GetDatum Method</seealso> <seealso cref="P:StormSource.Gps.Datum.Type">Type Property</seealso> <param name="code">A <strong>String</strong> <see cref="T:StormSource.Gps.DatumType">DatumType</see> enumeration. </param> </member><member name="P:StormSource.Gps.Datum.Type"> <summary>Represents a unique identifier for a datum object.</summary> <value> Read only. A value from the <see cref="T:StormSource.Gps.DatumType">DatumType</see> enumeration. </value> <remarks> This property is typically used by the <see cref="M:StormSource.Gps.Geodesy.GetDatum(StormSource.Gps.DatumType)">GetDatum</see> method to return information about a specific datum. This property is similar to the <see cref="P:StormSource.Gps.Datum.Code">code</see> property since it uniquely identifies a datum. If a custom datum has been created, this property will contain a value of <see cref="T:StormSource.Gps.DatumType">DatumType.UserDefined</see>. </remarks> <seealso cref="T:StormSource.Gps.DatumType">DatumType Enumeration</seealso> <seealso cref="P:StormSource.Gps.Datum.Code">Code Property</seealso> <seealso cref="M:StormSource.Gps.Datum.GetDatum(StormSource.Gps.DatumType)">GetDatum Method</seealso> </member><member name="P:StormSource.Gps.Datum.Ellipsoid"> <summary>Returns the interpretation of Earth's shape associated with a datum.</summary> <value> Read only. An <see cref="P:StormSource.Gps.Datum.Ellipsoid">Ellipsoid</see> object. </value> <remarks>Each datum is associated with an ellipsoid, which is an interpretation of Earth's shape and size.</remarks> <example> This example gets information on the ellipsoid associated with the WGS84 datum. <code lang="VB"> ' Get information about the NAD1983 datum Dim MyDatum As Datum = Geodesy.GetDatum(DatumType.NorthAmerican1983) ' Get the ellipsoid associated with this datum Dim MyEllipsoid As Ellipsoid = MyDatum.Ellipsoid ' Write the semi-major axis of the ellipsoid Debug.WriteLine(MyEllipsoid.SemiMajorAxis.ToString()) </code> <code lang="C#"> // Get information about the NAD1983 datum Datum MyDatum = Geodesy.GetDatum(DatumType.NorthAmerican1983); // Get the ellipsoid associated with this datum Ellipsoid MyEllipsoid = MyDatum.Ellipsoid; // Write the semi-major axis of the ellipsoid Debug.WriteLine(MyEllipsoid.SemiMajorAxis.ToString()); </code> </example> <seealso cref="T:StormSource.Gps.Ellipsoid">Ellipsoid Class</seealso> </member><member name="M:StormSource.Gps.Datum.Equals(StormSource.Gps.Datum)"> <summary> Compares the current instance to the specified datum object. </summary> </member><member name="M:StormSource.Gps.Datum.Equals(StormSource.Gps.DatumType)"> <summary> Compares the current instance to the specified datum type. </summary> </member><member name="P:StormSource.Gps.Datum.Name"> <summary>Returns a user-friendly name for a datum.</summary> <value>Read only. A <strong>String</strong> value.</value> <remarks> This property is typically used for displaying in a user interface, such as a drop-down box or <see cref="T:System.Windows.Forms.ListView">ListView</see> control. </remarks> <seealso cref="P:StormSource.Gps.Datum.Code">Code Property</seealso> </member><member name="T:StormSource.Gps.Datum"> <summary>Represents a coordinate system based on interpretations of the Earth's shape and size.</summary> <remarks> <para>Throughout history, new interpretations of the specific <see cref="T:StormSource.Gps.Ellipsoid">size and shape of the Earth</see> have evolved thanks to improvements in science and technology. While these interpretations change, however, several maps still exist using the older interpretations. Thus, several datums are recorded to allow for <see cref="T:StormSource.Gps.MolodenskyTransform">conversion between different coordinate systems</see> and to preserve the usefulness of older maps.</para> <para><img src="Datum.jpg"/></para> </remarks> <seealso cref="T:StormSource.Gps.Ellipsoid">Ellipsoid Class</seealso> <seealso cref="T:StormSource.Gps.MolodenskyTransform">MolodenskyTransform Class</seealso> </member><member name="M:StormSource.Gps.Radian.#ctor"> <summary>Creates a new instance.</summary> </member><member name="M:StormSource.Gps.Radian.#ctor(System.Double)"> <summary>Creates a new instance with the specified value.</summary> <remarks> this constructor is typically used to initialize an instance when the radian value is already known. </remarks> <param name="value">A value to store in the <strong>Value</strong> property.</param> </member><member name="P:StormSource.Gps.Radian.Value"> <summary>Represents the numeric portion of a radian measurement.</summary> <value> A <strong>Double</strong> value indicating an angular measurement expressed in radians. </value> <remarks> This property stores the numeric radian measurement. When this property changes, the <see cref="E:StormSource.Gps.Radian.ValueChanged(System.Object,StormSource.Gps.RadianEventArgs)"> ValueChanged</see> event is raised. A radian can be converted into a degree measurements via the <see cref="M:StormSource.Gps.Radian.ToAngle(StormSource.Gps.Radian)"> ToAngle</see> method. </remarks> </member><member name="M:StormSource.Gps.Radian.FromAngle(StormSource.Gps.Angle)"> <summary> Converts the specified angle into radians, storing the result in the current instance. </summary> <remarks> This method is typically used when a Radian object is being reused for conversions from multiple <see cref="T:StormSource.Gps.Angle">Angle</see> objects. </remarks> <param name="value">An <strong>Angle</strong> containing the value to convert.</param> </member><member name="M:StormSource.Gps.Radian.FromAngle(System.Double)"> <summary>Converts an arbitrary degree measurement into radians.</summary> <remarks> This method is used to perform a conversion from degrees to radians when no angle object is present. </remarks> <param name="value">A <strong>Double</strong> containing the decimal degrees to convert.</param> </member><member name="M:StormSource.Gps.Radian.ToAngle"> <summary>Converts the current instance into an <strong>Angle</strong> object.</summary> <returns>An <strong>Angle</strong> object.</returns> <remarks> This method is typically used to convert a radian measurement back to latitude or longitude after a trigonometric formula has completed. </remarks> </member><member name="T:StormSource.Gps.Radian"> <summary>Represents a unit of angular measurement used by trigonometric euqations.</summary> <remarks> <para>While the GPS.NET framework includes several trigonometric formulas, developers may still want to implement their own formulas for specialized purposes. Most trigonometric formulas rely upon angular measurements expressed as radians instead of degrees.</para> <para><strong>Radian Explanation</strong></para> <para>A radian is a unit of measure of an angle formed by an arc whose length is the same as the circle's radius:</para> <para> <img src="file:///C:/Source/StormSource/GPS.NET%20Global%20Positioning%20SDK/Version%201.4/Docu mentation/Radian.jpg"/> </para> </remarks> </member><member name="F:StormSource.Gps.BaudRate.Baud110"> <summary>110 bits per second.</summary> </member><member name="F:StormSource.Gps.BaudRate.Baud300"> <summary>300 bits per second.</summary> </member><member name="F:StormSource.Gps.BaudRate.Baud600"> <summary>600 bits per second.</summary> </member><member name="F:StormSource.Gps.BaudRate.Baud1200"> <summary>1,200 bits per second.</summary> </member><member name="F:StormSource.Gps.BaudRate.Baud2400"> <summary>2,400 bits per second.</summary> </member><member name="F:StormSource.Gps.BaudRate.Baud4800"> <summary>4,800 bits per second. Recommended value for devices transmitting GPS data using NMEA-0183.</summary> </member><member name="F:StormSource.Gps.BaudRate.Baud9600"> <summary>9,600 bits per second. Recommended value for devices transmitting GPS data using the Garmin® binary protocol.</summary> </member><member name="F:StormSource.Gps.BaudRate.Baud14400"> <summary>14,400 bits per second.</summary> </member><member name="F:StormSource.Gps.BaudRate.Baud19200"> <summary>19,200 bits per second.</summary> </member><member name="F:StormSource.Gps.BaudRate.Baud38400"> <summary>38,400 bits per second.</summary> </member><member name="F:StormSource.Gps.BaudRate.Baud56000"> <summary>56,000 bits per second.</summary> </member><member name="F:StormSource.Gps.BaudRate.Baud57600"> <summary>56,700 bits per second.</summary> </member><member name="F:StormSource.Gps.BaudRate.Baud115200"> <summary>115,200 bits per second.</summary> </member><member name="F:StormSource.Gps.BaudRate.Baud128000"> <summary>128,000 bits per second.</summary> </member><member name="F:StormSource.Gps.BaudRate.Baud256000"> <summary>256,000 bits per second.</summary> </member><member name="T:StormSource.Gps.BaudRate"> <summary> Indicates the speed of serial port communications. </summary> <remarks> <para>This enumeration is used by the <see cref="T:StormSource.Gps.BaudRate">BaudRate</see> property of the <see cref="T:StormSource.Gps.Device">Device</see> and <see cref="T:StormSource.Gps.Receiver">Receiver</see> classes. A value of <strong>Baud4800</strong> is used by default for the Receiver class, and is the most commonly-used baud rate. Some newer devices will transmit NMEA data at much higher baud rates, but 4800 baud handles a majority of devices on the market. A value of <strong>Baud9600</strong> is used for Garmin® devices set to use the Garmin® binary protocol.</para> </remarks> <seealso cref="P:StormSource.Gps.Device.BaudRate">BaudRate Property (Device Class)</seealso> <seealso cref="P:StormSource.Gps.Receiver.BaudRate">BaudRate Property (Receiver Class)</seealso> </member><member name="F:StormSource.Gps.Parity.None"> <summary>No parity is used. The default value used by the Receiver and a majority of GPS devices.</summary> </member><member name="F:StormSource.Gps.Parity.Odd"> <summary>Returns 1 if the counted number of on bits is odd.</summary> </member><member name="F:StormSource.Gps.Parity.Even"> <summary>Returns 1 if the counted number of on bits is even.</summary> </member><member name="F:StormSource.Gps.Parity.Mark"> <summary>Sends a constant "mark" signal. Rarely used.</summary> </member><member name="F:StormSource.Gps.Parity.Space"> <summary>Sends a constant "space" signal. Rarely used.</summary> </member><member name="T:StormSource.Gps.Parity"> <summary> Describes the method of simple error-checking used during serial communications. </summary> <remarks>This enumeration is used by the <see cref="P:StormSource.Gps.Receiver.Parity">Parity</see> property of the <see cref="T:StormSource.Gps.Receiver">Receiver</see> class. A parity bit affords a small (yet crude by today's standards) amount of error checking, to help detect data corruption that might occur during transmission. You can choose either even parity, odd parity, mark parity, space parity or none at all. Typically, GPS devices use a value of <strong>None</strong>, which is the default used by the Receiver class.</remarks> <seealso cref="P:StormSource.Gps.Receiver.Parity">Parity Property (Receiver Class)</seealso> <seealso cref="P:StormSource.Gps.Device.Parity">Parity Property (Device Class)</seealso> </member><member name="F:StormSource.Gps.DataBit.Size4"> <summary>Four bytes of data are sent after each stop bit.</summary> </member><member name="F:StormSource.Gps.DataBit.Size5"> <summary>Five bytes of data are sent after each stop bit.</summary> </member><member name="F:StormSource.Gps.DataBit.Size6"> <summary>Six bytes of data are sent after each stop bit.</summary> </member><member name="F:StormSource.Gps.DataBit.Size7"> <summary>Seven bytes of data are sent after each stop bit.</summary> </member><member name="F:StormSource.Gps.DataBit.Size8"> <summary>Eight bytes of data are sent after each stop bit. The default value used by the Receiver and a majority of GPS devices.</summary> </member><member name="T:StormSource.Gps.DataBit"> <summary> Describes the number of bits of data sent by a serial device after each stop bit. </summary> <remarks>This enumeration is used by the <see cref="P:StormSource.Gps.Receiver.DataBits">DataBits</see> property of the <see cref="T:StormSource.Gps.Receiver">Receiver</see> class to control how many bits are sent between each stop bit. Typically, GPS devices use <strong>Size8</strong>, which is the default of the Receiver class.</remarks> <seealso cref="P:StormSource.Gps.Receiver.DataBits">DataBits Property (Receiver Class)</seealso> <seealso cref="P:StormSource.Gps.Device.DataBits">DataBits Property (Device Class)</seealso> </member><member name="F:StormSource.Gps.StopBit.Bit1"> <summary>The stop bit is sent for one bit period.</summary> </member><member name="F:StormSource.Gps.StopBit.Bit2"> <summary>The stop bit is sent for two bit periods.</summary> </member><member name="F:StormSource.Gps.StopBit.Bit1Point5"> <summary>The stop bit is sent for one-and-a-half bit periods.</summary> </member><member name="T:StormSource.Gps.StopBit"> <summary> Describes the length of time that a stop bit is sent, in bit periods. </summary> <remarks>This enumeration is used by the <see cref="P:StormSource.Gps.Receiver.StopBits">StopBits</see> property of the <see cref="T:StormSource.Gps.Receiver">Receiver</see> class to indicate how many stop bits are being sent between blocks of data to and from a serial device. Typically, most GPS devices use a value of <strong>Bit1</strong>, which is the default of the <see cref="T:StormSource.Gps.Receiver">Receiver</see> class.</remarks> <seealso cref="P:StormSource.Gps.Receiver.StopBits">StopBits Property (Receiver Class)</seealso> <seealso cref="P:StormSource.Gps.Device.StopBits">StopBits Property (Device Class)</seealso> </member><member name="T:StormSource.Gps.UtmZone"> <summary>Indicates a vertical slice of the Earth used as a starting point for UTM positions.</summary> </member><member name="F:StormSource.Gps.FixLikelihood.Unlikely"> <summary>Indicates that a fix is not likely to be obtained.</summary> <remarks>When this value is returned, nearly all of the available GPS satellite signals are being obscured by buildings, trees, or other solid objects. The device should be moved into a more open view of the sky.</remarks> </member><member name="F:StormSource.Gps.FixLikelihood.Possible"> <summary>Indicates that a fix is possible, but will likely be unstable.</summary> <remarks>When this value is returned, a few satellite signals are available, but the combined signals are too weak to maintain a fix for long. The device should be moved into a more open view of the sky.</remarks> </member><member name="F:StormSource.Gps.FixLikelihood.Likely"> <summary>Indicates that a fix is possible and likely to be stable.</summary> <remarks>When this value is returned, at least three satellite signals are being received clearly. If conditions stay the same or improve, a fix is imminent.</remarks> </member><member name="F:StormSource.Gps.FixLikelihood.Certain"> <summary>Indicates that a fix is certain and very likely to be stable.</summary> <remarks>When this value is returned, several satellite signals are being received and are strong enough to maintain a fix.</remarks> </member><member name="T:StormSource.Gps.FixLikelihood"> <summary>Indicates the liklihood that a fix will be obtained based on the combined signal strengths of all satellites.</summary> <remarks>This enumeration is used by the <see cref="T:StormSource.Gps.FixLikelihood">FixLikelihood</see> property of the <see cref="T:StormSource.Gps.Receiver">Receiver</see> class to give an indication of what the satellite fix experience will be like for the next several seconds. </remarks> <example> This example uses the FixLikelihood enumeration to make a judgement call on the stability of the fix. <code lang="VB"> ' Declare a new receiver Private WithEvents MyReceiver As New Receiver() Sub Main() ' Start listening for messages MyReceiver.Start End Sub Sub OnFixLikelihoodChanged(ByVal sender As Object, ByVal e As FixLikelihoodEventArgs) Handles MyReceiver.FixLikelihoodChanged ' Do we have a fix currently? If MyReceiver.IsFixObtained Then ' Yes. What's the likelihood that the fix will be sustained? Select Case MyReceiver.FixLikelihood Case FixLikelihood.Unlikely Debug.WriteLine("The current fix is about to be lost!") Case FixLikelihood.Possible Debug.WriteLine("The current fix is unstable. Find a more open view of the sky soon.") Case FixLikelihood.Likely Debug.WriteLine("The current fix is nearly stable.") Case FixLikelihood.Certain Debug.WriteLine("The current fix is stable.") End Select Else ' No. What's the likelihood that a fix will be obtained? Select Case MyReceiver.FixLikelihood Case FixLikelihood.Unlikely Debug.WriteLine("A fix is not possible. Find a more open view of the sky.") Case FixLikelihood.Possible Debug.WriteLine("A fix is possible, but satellite signals are still mostly obscured.") Case FixLikelihood.Likely Debug.WriteLine("A fix should occur within the next several seconds.") Case FixLikelihood.Certain Debug.WriteLine("A fix will occur in a few seconds.") End Select End If End Sub </code> <code lang="C#"> ' Declare a new receiver Private Receiver MyReceiver = new Receiver(); void Main() { // Start listening for messages MyReceiver.Start(); } void OnFixLikelihoodChanged(Object sender, FixLikelihoodEventArgs e) { // Do we have a fix currently? if (MyReceiver.IsFixObtained) { // Yes. What's the likelihood that the fix will be sustained? switch(MyReceiver.FixLikelihood) { case FixLikelihood.Unlikely: Debug.WriteLine("The current fix is about to be lost!"); break; case FixLikelihood.Possible: Debug.WriteLine("The current fix is unstable. Find a more open view of the sky soon."); break; case FixLikelihood.Likely: Debug.WriteLine("The current fix is nearly stable."); break; case FixLikelihood.Certain: Debug.WriteLine("The current fix is stable."); break; } } else { // No. What's the likelihood that a fix will be obtained? switch(MyReceiver.FixLikelihood) { case FixLikelihood.Unlikely: Debug.WriteLine("A fix is not possible. Find a more open view of the sky."); break; case FixLikelihood.Possible: Debug.WriteLine("A fix is possible, but satellite signals are still mostly obscured."); break; case FixLikelihood.Likely: Debug.WriteLine("A fix should occur within the next several seconds."); break; case FixLikelihood.Certain: Debug.WriteLine("A fix will occur in a few seconds."); break; } } } </code> </example> <seealso cref="P:StormSource.Gps.Receiver.FixLikelihood">FixLikelihood Property (Receiver Class)</seealso> </member><member name="F:StormSource.Gps.CardinalDirection.North"> <summary>An azimuth of approximately 0°</summary> </member><member name="F:StormSource.Gps.CardinalDirection.NorthNorthEast"> <summary>Between north and northeast</summary> </member><member name="F:StormSource.Gps.CardinalDirection.NorthEast"> <summary>Between north and east</summary> </member><member name="F:StormSource.Gps.CardinalDirection.EastNorthEast"> <summary>Between east and northeast</summary> </member><member name="F:StormSource.Gps.CardinalDirection.East"> <summary>An azimuth of approximately 90°</summary> </member><member name="F:StormSource.Gps.CardinalDirection.EastSouthEast"> <summary>Between east and southeast</summary> </member><member name="F:StormSource.Gps.CardinalDirection.SouthEast"> <summary>Between south and east</summary> </member><member name="F:StormSource.Gps.CardinalDirection.SouthSouthEast"> <summary>Between south and southeast</summary> </member><member name="F:StormSource.Gps.CardinalDirection.South"> <summary>An azimuth of approximately 180°</summary> </member><member name="F:StormSource.Gps.CardinalDirection.SouthSouthWest"> <summary>Between south and southwest</summary> </member><member name="F:StormSource.Gps.CardinalDirection.SouthWest"> <summary>Between south and west</summary> </member><member name="F:StormSource.Gps.CardinalDirection.WestSouthWest"> <summary>Between west and southwest</summary> </member><member name="F:StormSource.Gps.CardinalDirection.West"> <summary>An azimuth of approximately 270°</summary> </member><member name="F:StormSource.Gps.CardinalDirection.WestNorthWest"> <summary>Between west and northwest</summary> </member><member name="F:StormSource.Gps.CardinalDirection.NorthWest"> <summary>Between north and west</summary> </member><member name="F:StormSource.Gps.CardinalDirection.NorthNorthWest"> <summary>Between north and northwest</summary> </member><member name="T:StormSource.Gps.CardinalDirection"> <summary>Indicates a compass direction oriented with true north (as opposed to magnetic north).</summary> <remarks> This enumeration is commonly used by the <see cref="T:StormSource.Gps.CardinalDirection">CardinalDirection</see> property of the <see cref="T:StormSource.Gps.Azimuth">Azimuth</see> class to convert an angular measurement in decimal degrees to a more readable form. </remarks> <seealso cref="P:StormSource.Gps.Azimuth.CardinalDirection">CardinalDirection Property (Azimuth Class)</seealso> </member><member name="F:StormSource.Gps.WaypointDisplayMode.Hidden"> <summary>The waypoint is not displayed.</summary> </member><member name="F:StormSource.Gps.WaypointDisplayMode.SymbolOnly"> <summary>Only the symbol is displayed, not the name or description.</summary> </member><member name="F:StormSource.Gps.WaypointDisplayMode.SymbolWithName"> <summary>Only the symbol and name of the waypoint is displayed.</summary> </member><member name="F:StormSource.Gps.WaypointDisplayMode.SymbolWithComment"> <summary>Only the symbol and description of the waypoint is displayed.</summary> </member><member name="T:StormSource.Gps.WaypointDisplayMode"> <summary> Garmin® devices only. Indicates how much information about a waypoint is displayed on-screen. </summary> <remarks> This enumeration is used by the DisplayMode property of the Waypoint class. Not all display modes are supported by all devices. To find out which display modes are supported, see the <see cref="M:StormSource.Gps.Device.GetDisplayModes">GetDisplayModes</see> method of the <see cref="T:StormSource.Gps.Device">Device</see> class. </remarks> <seealso cref="P:StormSource.Gps.Waypoint.DisplayMode">DisplayMode Property (Waypoint Class)</seealso> <seealso cref="M:StormSource.Gps.Device.GetDisplayModes">GetDisplayModes Method (Device Class)</seealso> </member><member name="F:StormSource.Gps.WaypointClass.UserDefined"> <summary>The waypoint was created by the user.</summary> </member><member name="F:StormSource.Gps.WaypointClass.AviationAirport"> <summary>The waypoint marks an airport.</summary> </member><member name="F:StormSource.Gps.WaypointClass.AviationNdb"> <summary>The waypoint marks a Non-Directional Beacon used for navigation.</summary> </member><member name="F:StormSource.Gps.WaypointClass.AviationVor"> <summary>The waypoint marks a VHF Omnidirectional Radio beacon.</summary> </member><member name="F:StormSource.Gps.WaypointClass.AviationAirportRunway"> <summary>The waypoint marks a runway at an airport.</summary> </member><member name="F:StormSource.Gps.WaypointClass.AviationAirportNdb"> <summary>The waypoint marks a Non-Directional Beacon at an airport.</summary> </member><member name="F:StormSource.Gps.WaypointClass.MapIntersection"> <summary>The waypoint marks a road intersection.</summary> </member><member name="T:StormSource.Gps.WaypointClass"> <summary>Indicates a classification for a waypoint.</summary> <remarks> The class of a waypoint is designed to be used as a read-only indicator, and will always be <strong>UserDefined</strong> for any waypoint created using the GPS.NET framework. </remarks> <seealso cref="P:StormSource.Gps.Waypoint.Class">Class Property (Waypoint Class)</seealso> </member><member name="F:StormSource.Gps.WaypointColor.Default"> <summary>The default color, typically black.</summary> </member><member name="F:StormSource.Gps.WaypointColor.Red"> <summary>Red.</summary> </member><member name="F:StormSource.Gps.WaypointColor.Green"> <summary>Green.</summary> </member><member name="F:StormSource.Gps.WaypointColor.Blue"> <summary>Blue.</summary> </member><member name="F:StormSource.Gps.WaypointColor.Black"> <summary>Black.</summary> </member><member name="F:StormSource.Gps.WaypointColor.DarkRed"> <summary>Dark red.</summary> </member><member name="F:StormSource.Gps.WaypointColor.DarkGreen"> <summary>Dark green.</summary> </member><member name="F:StormSource.Gps.WaypointColor.DarkYellow"> <summary>Dark yellow.</summary> </member><member name="F:StormSource.Gps.WaypointColor.DarkBlue"> <summary>Dark blue.</summary> </member><member name="F:StormSource.Gps.WaypointColor.DarkMagenta"> <summary>Dark magenta.</summary> </member><member name="F:StormSource.Gps.WaypointColor.DarkCyan"> <summary>Dark cyan.</summary> </member><member name="F:StormSource.Gps.WaypointColor.LightGray"> <summary>Light gray.</summary> </member><member name="F:StormSource.Gps.WaypointColor.DarkGray"> <summary>Dark gray.</summary> </member><member name="F:StormSource.Gps.WaypointColor.Yellow"> <summary>Yellow.</summary> </member><member name="F:StormSource.Gps.WaypointColor.Magenta"> <summary>Magenta.</summary> </member><member name="F:StormSource.Gps.WaypointColor.Cyan"> <summary>Cyan.</summary> </member><member name="F:StormSource.Gps.WaypointColor.White"> <summary>White.</summary> </member><member name="T:StormSource.Gps.WaypointColor"> <summary>Indicates the color of a waypoint as it is displayed on-screen.</summary> <remarks> This enumeration is used by the <see cref="P:StormSource.Gps.Waypoint.Color">Color</see> property of the <see cref="T:StormSource.Gps.Waypoint">Waypoint</see> class. Support for waypoint colors varies widely depending on the model of GPS device being used. To find out which specific colors are supported, use the <see cref="M:StormSource.Gps.Device.GetColors">GetColors</see> method of the <see cref="T:StormSource.Gps.Device">Device</see> class. </remarks> <seealso cref="P:StormSource.Gps.Waypoint.Color">Color Property (Waypoint Class)</seealso> <seealso cref="M:StormSource.Gps.Device.GetColors">GetColors Method (Device Class)</seealso> </member><member name="F:StormSource.Gps.WaypointSymbol.Anchor"> <summary>A boat anchor.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Bell"> <summary>An alarm bell.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.DiamondGreen"> <summary>A diamond colored green.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.DiamondRed"> <summary>A diamond colored red.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.DiverDownFlag1"> <summary>A flag indicating a diver is in the water.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.DiverDownFlag2"> <summary>A flag indicating a diver is in the water.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Dollar"> <summary>A dollar sign.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Fish"> <summary>A fish.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Fuel"> <summary>A gas pump.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Horn"> <summary>A horn.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.House"> <summary>A house.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Knife"> <summary>A knife.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Light"> <summary>A light bulb.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Mug"> <summary>A beer mug.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Skull"> <summary>A skull.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.SquareGreen"> <summary>A square colored green.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.SquareRed"> <summary>A square colored red.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Buoy"> <summary>A buoy in the water.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Dot"> <summary>A dot. Typically used as a default symbol.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Wreck"> <summary>A shipwreck.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Transparent"> <summary>No symbol.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.BuoyAmber"> <summary>A buoy colored amber.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.BuoyBlack"> <summary>A buoy colored black.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.BuoyBlue"> <summary>A buoy colored blue.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.BuoyGreen"> <summary>A buoy colored green.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.BuoyGreenAndRed"> <summary>A buoy colored in green and red stripes.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.BuoyGreenAndWhite"> <summary>A buoy colored in green and white stripes.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.BuoyOrange"> <summary>A buoy colored orange.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.BuoyRed"> <summary>A buoy colored red.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.BuoyRedAndGreen"> <summary>A buoy colored red and green.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.BuoyRedAndWhite"> <summary>A buoy colored red and white.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.BuoyViolet"> <summary>A buoy colored violet.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.BuoyWhite"> <summary>A buoy colored white.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.BuoyWhiteAndGreen"> <summary>A buoy colored white and green.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.BuoyWhiteAndRed"> <summary>A buoy colored white and red.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.DotWhite"> <summary>A dot colored white.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.RadioBeacon"> <summary>A radio beacon.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.BoatRamp"> <summary>A boat ramp.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Camp"> <summary>A campsite.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Restrooms"> <summary>A public bathroom.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Showers"> <summary>Public showers.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.DrinkingWater"> <summary>A drinking fountain.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Phone"> <summary>A public telephone.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.FirstAid"> <summary>A first aid station or hospital.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Info"> <summary>An information center, typically a rest stop.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Parking"> <summary>A parking lot.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Park"> <summary>A public park.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Picnic"> <summary>A picnic area.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Scenic"> <summary>A scenic point or overlook.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Skiing"> <summary>A ski resort or water skiing location.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Swimming"> <summary>A swimming pool.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Dam"> <summary>A dam.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Controlled"> <summary>A controlled area.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Danger"> <summary>A dangerous place.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Restricted"> <summary>A restricted area.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Null"> <summary>No symbol.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Ball"> <summary>A ball, typically marking a recreation area.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Car"> <summary>A car dealership or repair center.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Deer"> <summary>A deer, typically a hunting area.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.ShoppingCart"> <summary>A place with shops.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Lodging"> <summary>A lodge or resort.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Mine"> <summary>A mining facility or site.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.TrailHead"> <summary>The beginning of a hiking trail.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.TruckStop"> <summary>A truck stop.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Exit"> <summary>A highway exit.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Flag"> <summary>A flag, typically a government facility.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.CircleX"> <summary>X marks the spot.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.InterstateHighway"> <summary>A four-or-more-lane highway which crosses state lines.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.USHighway"> <summary>A two-lane highway which crosses state lines.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.StateHighway"> <summary>A two-lane highway.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.MileMarker"> <summary>A sign which indicates the distance from a state border.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.TracBack"> <summary>Used to mark a point in the device's track log.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Golf"> <summary>A golf club.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.SmallCity"> <summary>A small-sized city.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.MediumCity"> <summary>A medium-sized city.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.LargeCity"> <summary>A large city.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Freeway"> <summary>A multi-lane highway.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.NationalHighway"> <summary>A national highway.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.CapitolCity"> <summary>A state capitol.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.AmusementPark"> <summary>An amusement park.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Bowling"> <summary>A bowling lane.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.CarRental"> <summary>A car rental.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.CarRepair"> <summary>A car repair shop.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.FastFood"> <summary>A fast food drive-thru.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Fitness"> <summary>A workout club or health spa.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.MovieTheater"> <summary>A movie theater.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Museum"> <summary>A museum.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Pharmacy"> <summary>A pharmacy.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Pizza"> <summary>A pizza restaurant.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.PostOffice"> <summary>A post office.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.RVPark"> <summary>A recreational vehicle park.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.School"> <summary>A school or university.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Stadium"> <summary>A sports arena.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.DepartmentStore"> <summary>A shopping mall or department store.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Zoo"> <summary>A zoo.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.ConvenienceStore"> <summary>A convenience store.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.LiveTheater"> <summary>A theater for live performances.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.RampIntersection"> <summary>An exit or intersection of two ramps, typically an exit and on-ramp pair.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.StreetIntersection"> <summary>Marks the intersection of two streets.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.WeighStation"> <summary>A weight station for trucks.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.TollBooth"> <summary>A booth at the beginning or end of a pay-per-use road.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.ElevationPoint"> <summary> A place marking a high point such as a mountaintop or highest point in the state. </summary> </member><member name="F:StormSource.Gps.WaypointSymbol.ExitWithoutServices"> <summary>An exit for a rural road which leads to no gas stations or lodging.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.GeographicPlaceNameManMade"> <summary> A large, natural yet man-made landmark, such as Mount Rushmore or Hoover Dam. </summary> </member><member name="F:StormSource.Gps.WaypointSymbol.GeographicPlaceNameWater"> <summary>A body of water, such as a lake, bay or lagoon.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.GeographicPlaceNameLand"> <summary> A significant landmark not on water, such as the Grand Canyon, or Carlsbad Caverns. </summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Bridge"> <summary>A bridge.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Building"> <summary>A building.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Cemetery"> <summary>A cemetery.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Church"> <summary>A church.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.CivilLocation"> <summary> A location of civil services, typically a court or other government building. </summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Crossing"> <summary>A crossing location.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.HistoricalTown"> <summary>A preserved historical town or landmark.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Levee"> <summary>A smaller dam.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Military"> <summary>A military base or school.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.OilField"> <summary>An oil field.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Tunnel"> <summary>A tunnel.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Beach"> <summary>A beach location.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Forest"> <summary>A forest.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Summit"> <summary>Marks the top of a mountain.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.LargeRampIntersection"> <summary>A large ramp, such as one which connects one large highway to another.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.LargeExitNoServices"> <summary>A larger exit which has no services in its path.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Police"> <summary>A police or highway patrol station.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Casino"> <summary>A casino.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Snowski"> <summary>A snow ski resort.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Iceskate"> <summary>An ice skating rink.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Wrecker"> <summary>A towing service.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.PortOfEntry"> <summary>A port of entry, typically in an oceanside city.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Airport"> <summary>A rural or international airport.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Intersection"> <summary>A general intersection of roads, trails, and etc.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.NonDirectionalBeacon"> <summary>A marker used for NDB airplane navigation.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.VhfOmniRangeSignal"> <summary>A marker used for VOR airplane navigation.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Heliport"> <summary>A helicopter port.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.PrivateField"> <summary>A private airfield.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.SoftField"> <summary>A rural airport with no concrete or asphalt runway.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.TallTower"> <summary> A tall tower which has lights to warn aircraft, typically marking a radio tower. </summary> </member><member name="F:StormSource.Gps.WaypointSymbol.ShortTower"> <summary>A shorter tower which could have lights to warn aircraft.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Glider"> <summary>An airport which provides glider rides.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Ultralight"> <summary>An airport which provides ultralight rides.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Parachute"> <summary>An airport which provides parachute rides.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.VorTacan"> <summary>A marker used for TACtical Air Navigation.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.VorDme"> <summary>A marker used for Distance Measuring Equipment on airplanes.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.FirstApproachFix"> <summary>A marker used for first landing approach.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.LocalizerOuterMarker"> <summary>A marker signifying an outer marker.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.MissedApproachPoint"> <summary>A point at which a landing attempt should be aborted.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Tacan"> <summary>A marker used for TACtical Air Navigation.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.SeaplaneBase"> <summary>An airport or rural location which supports aircraft which lands on water.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Gas"> <summary>A gas station or other refueling point.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.Boat"> <summary>A boat rental or launch area.</summary> </member><member name="F:StormSource.Gps.WaypointSymbol.BackTrack"> <summary>A marker which indicates a return route.</summary> </member><member name="T:StormSource.Gps.WaypointSymbol"> <summary>Indicates the symbol used to represent a waypoint in graphical form.</summary> <remarks> Symbols are the most common method used to identify a waypoint, track point, or any other kind of marker. This enumeration is typically used by the <see cref="P:StormSource.Gps.Waypoint.Symbol">Symbol</see> property of the <see cref="T:StormSource.Gps.Waypoint">Waypoint</see> class. Since some devices only support a subset of this list, it is recommended that the <see cref="M:StormSource.Gps.Device.GetSymbols">GetSymbols</see> method of the <see cref="T:StormSource.Gps.Device">Device</see> class be used any time the user can choose a symbol. </remarks> <seealso cref="P:StormSource.Gps.Waypoint.Symbol">Symbol Property (StormSource.Gps.Waypoint)</seealso> <seealso cref="M:StormSource.Gps.Device.GetSymbols">GetSymbols Method (StormSource.Gps.Device)</seealso> </member><member name="F:StormSource.Gps.LatitudeHemisphere.North"> <summary>The latitude is north of the equator.</summary> </member><member name="F:StormSource.Gps.LatitudeHemisphere.South"> <summary>The latitude is south of the equator.</summary> </member><member name="T:StormSource.Gps.LatitudeHemisphere"> <summary>Indicates the position of a latitude measurement relative to the equator.</summary> <remarks> <para>This enumeration is used by the <see cref="P:StormSource.Gps.Latitude.Hemisphere">Hemisphere</see> property of the <see cref="T:StormSource.Gps.Latitude">Latitude</see> class. If a latitude is south of the equator, it's value is displayed as a negative number, or with a single letter (but not both). For example, 39 degrees south of the equator can be expressed in either of these ways:</para> <list type="bullet"> <item>39°S</item> <item>-39°</item> </list> </remarks> <seealso cref="P:StormSource.Gps.Longitude.Hemisphere">Hemisphere Property (Longitude Class)</seealso> <seealso cref="T:StormSource.Gps.LongitudeHemisphere">LongitudeHemisphere Enumeration</seealso> </member><member name="F:StormSource.Gps.LongitudeHemisphere.East"> <summary>The longitude is east of the Prime Meridian.</summary> </member><member name="F:StormSource.Gps.LongitudeHemisphere.West"> <summary>The longitude is west of the Prime Meridian.</summary> </member><member name="T:StormSource.Gps.LongitudeHemisphere"> <summary>Indicates the position of a longitude measurement relative to the <a href="http://www.greenwichmeridian.com/">Prime Meridian</a>.</summary> <remarks> <para>This enumeration is used by the <see cref="P:StormSource.Gps.Longitude.Hemisphere">Hemisphere</see> property of the <see cref="T:StormSource.Gps.Longitude">Latitude</see> class. If a longitude is west of the Prime Meridian, it's value is displayed as a negative number, or with a single letter (but not both). For example, 105 degrees west can be expressed in either of these ways:</para> <list type="bullet"> <item>105°W</item> <item>-105°</item> </list> </remarks> <seealso cref="P:StormSource.Gps.Latitude.Hemisphere">Hemisphere Property (Latitude Class)</seealso> <seealso cref="T:StormSource.Gps.LatitudeHemisphere">LatitudeHemisphere Enumeration</seealso> </member><member name="F:StormSource.Gps.Manufacturer.Unknown"> <summary>The manufacturer is unknown.</summary> </member><member name="F:StormSource.Gps.Manufacturer.Garmin"> <summary> Garmin International, Inc. (<a href="http://www.garmin.com">http://www.garmin.com</a>) </summary> </member><member name="F:StormSource.Gps.Manufacturer.Magellan"> <summary> Magellan, Inc. (<a href="http://www.magellangps.com">http://www.magellangps.com</a>) </summary> </member><member name="F:StormSource.Gps.Manufacturer.DeLorme"> <summary> DeLorme, Inc. (<a href="http://www.delorme.com">http://www.delorme.com</a>) </summary> </member><member name="F:StormSource.Gps.Manufacturer.Lowrance"> <summary> Lowrance Electronics, Inc. (<a href="http://www.lowrance.com">http://www.lowrance.com</a>) </summary> </member><member name="F:StormSource.Gps.Manufacturer.Holux"> <summary> Holux Technology, Inc. (<a href="http://www.holux.com">http://www.holux.com</a>) </summary> </member><member name="F:StormSource.Gps.Manufacturer.Leica"> <summary>Leica Geosystems, Inc. (<a href="http://www.leica-geosystems.com/corporate/en/lgs_index.htm">http://www.leica-geosystems.com/corporate/en/lgs_index.htm</a>) </summary> </member><member name="T:StormSource.Gps.Manufacturer"> <summary>Indicates the name of a company which makes GPS devices.</summary> <remarks> This enumeration is typically used by the <see cref="P:StormSource.Gps.Device.Manufacturer">Manufacturer</see> property of the <see cref="T:StormSource.Gps.Device">Device</see> class to indicate which manufacturer made the GPS device which is currently in use. During communications, if a custom message is received which is sent by only one manufacturer, GPS.NET will try to partially identify the device. </remarks> <seealso cref="P:StormSource.Gps.Device.Manufacturer">Manufacturer Property (Device Class)</seealso> <seealso cref="T:StormSource.Gps.Device">Device Class</seealso> </member><member name="F:StormSource.Gps.Protocol.Unknown"> <summary>The protocol is unknown. Used when communications have not yet begun.</summary> </member><member name="F:StormSource.Gps.Protocol.Nmea"> <summary> NMEA-0183, the most popular and common data protocol. Most devices support this protocol. </summary> </member><member name="F:StormSource.Gps.Protocol.GarminBinary"> <summary> Garmin® binary, used by Garmin® devices to transfer waypoints, routes, and tracks, but not recommended for positional data. </summary> </member><member name="F:StormSource.Gps.Protocol.GarminText"> <summary>Garmin® text, a very limited text protocol.</summary> </member><member name="F:StormSource.Gps.Protocol.Sirf"> <summary>SiRF binary, a thorough binary protocol (Not yet supported)</summary> </member><member name="F:StormSource.Gps.Protocol.Magellan"> <summary>An extention of the NMEA-0183 protocol. Not yet supported.</summary> </member><member name="F:StormSource.Gps.Protocol.Lowrance"> <summary>Not yet supported.</summary> </member><member name="T:StormSource.Gps.Protocol"> <summary>Indicates the method of communicating GPS data currently in use.</summary> <remarks> This enumeration is typically used by the <see cref="P:StormSource.Gps.Device.Protocol">Protocol</see> property of the <see cref="T:StormSource.Gps.Device">Device</see> class to indicate what method of communication is in use. The GPS.NET parsing engine will automatically detect the protocol, even if it is changed at run-time. </remarks> </member><member name="F:StormSource.Gps.DilutionOfPrecisionRating.Ideal"> <summary> The GPS device is making the most accurate measurements possible. Represents a value of 1. </summary> </member><member name="F:StormSource.Gps.DilutionOfPrecisionRating.Excellent"> <summary> The GPS device is making high-quality measurements, good enough for applications requiring higher levels of precision. Represents a value of 2 or 3. </summary> </member><member name="F:StormSource.Gps.DilutionOfPrecisionRating.Good"> <summary> The GPS device is making measurements accurate enough for en-route navigation. Represents a value between 4 and 6. </summary> </member><member name="F:StormSource.Gps.DilutionOfPrecisionRating.Moderate"> <summary> The GPS device is making measurements good enough to indicate the approximate location, but should be ignored by applications requiring high accuracy. Represents a value of 7 or 8. </summary> </member><member name="F:StormSource.Gps.DilutionOfPrecisionRating.Fair"> <summary> The GPS device is making measurements with an accuracy which should only be used to indicate the approximate location, but is not accurate enough for en-route navigation. Represents a value between 9 and 20. </summary> </member><member name="F:StormSource.Gps.DilutionOfPrecisionRating.Poor"> <summary> The GPS device is calculating the current location, but the accuracy is extremely low and may be off by a factor of fifty. Represents a value between 21 and the maximum possible of 50. </summary> </member><member name="T:StormSource.Gps.DilutionOfPrecisionRating"> <summary> Represents an in-English interpretation of the accuracy of a measurement made by the GPS device. </summary> <remarks> This enumeration is used by the <see cref="P:StormSource.Gps.DilutionOfPrecision.Rating">Rating</see> property of the <see cref="T:StormSource.Gps.DilutionOfPrecision"> DilutionOfPrecision</see> class. This interpretation is subject to discussion as to what precisely constitutes a "good" versus "bad" DOP. Use your own best judgement based on the needs of your application. Generally speaking, a DOP of six or less is recommended for en-route navigation, and three or less for highly-precise measurements. A rating of <strong>Moderate</strong> corresponds with six or better, a rating of <strong>Excellent</strong> means three or less, and a rating of <strong>Ideal</strong> means the best value of one. </remarks> </member><member name="F:StormSource.Gps.DilutionOfPrecisionType.Mean"> <summary> The dilution of precision measurement is an overall measure of accuracy in latitude, longitude, or altitude. </summary> </member><member name="F:StormSource.Gps.DilutionOfPrecisionType.Horizontal"> <summary> The dilution of precision measurement is made in regards to latitude and longitude. </summary> </member><member name="F:StormSource.Gps.DilutionOfPrecisionType.Vertical"> <summary>The dilution of precision measurement is made in regards to altitude.</summary> </member><member name="T:StormSource.Gps.DilutionOfPrecisionType"> <summary> Identifies what kind of measurements a dilution of precision value describes. </summary> <remarks> This enumeration is used by the <see cref="P:StormSource.Gps.DilutionOfPrecision.Type">Type</see> property of the <see cref="T:StormSource.Gps.DilutionOfPrecisionEventArgs"> DilutionOfPrecisionEventArgs</see> to allow developers the ability to combine multiple DOP events into one method, yet still have a way to tell measurements apart. </remarks> </member><member name="F:StormSource.Gps.PositionErrorType.Mean"> <summary>An overall average of latitude, longitude and altitude measurements.</summary> </member><member name="F:StormSource.Gps.PositionErrorType.Horizontal"> <summary>A measurement of error as it relates to latitude and longitude.</summary> </member><member name="F:StormSource.Gps.PositionErrorType.Vertical"> <summary>A measurement of error as it relates to altitude.</summary> </member><member name="T:StormSource.Gps.PositionErrorType"> <summary>Indicates the type of error being measured.</summary> <remarks> This enumeration is used by the <see cref="P:StormSource.Gps.PositionError.Type">Type</see> property of the <see cref="T:StormSource.Gps.PositionError">PositionError</see> class to allow developers the ability to handle multiple position error events in one method and be able to tell objects apart. </remarks> </member><member name="F:StormSource.Gps.RecommendedSteeringDirection.Left"> <summary>Steer left or resume course.</summary> </member><member name="F:StormSource.Gps.RecommendedSteeringDirection.Right"> <summary>Steer right to resume course.</summary> </member><member name="T:StormSource.Gps.RecommendedSteeringDirection"> <summary>Indicates a steering direction recommended to correct cross-track error.</summary> <remarks> This enumeration is most frequently used during flights to maintain the proper course to a navigation point. </remarks> </member><member name="F:StormSource.Gps.DistanceUnit.Kilometers"> <summary>Metric system. Kilometers (thousands of meters).</summary> </member><member name="F:StormSource.Gps.DistanceUnit.NauticalMiles"> <summary>Nautical miles, also known as "sea miles".</summary> </member><member name="F:StormSource.Gps.DistanceUnit.StatuteMiles"> <summary>Imperial system. A statute mile, most often referred to just as "mile."</summary> </member><member name="F:StormSource.Gps.DistanceUnit.Meters"> <summary>Metric system. Meters.</summary> </member><member name="F:StormSource.Gps.DistanceUnit.Feet"> <summary>Imperial system. Feet.</summary> </member><member name="F:StormSource.Gps.DistanceUnit.Inches"> <summary>Imperial system. Inches.</summary> </member><member name="T:StormSource.Gps.DistanceUnit"> <summary>Indicates the unit of measure for distance measurements.</summary> <remarks> This enumeration is most frequently used by the <see cref="P:StormSource.Gps.Distance.Units">Units</see> property of the <see cref="T:StormSource.Gps.Distance">Distance</see> class in conjunction with the <see cref="P:StormSource.Gps.Distance.Value">Value</see> property to describe a straight-line distance. </remarks> <seealso cref="P:StormSource.Gps.Distance.Value">Value Property (Distance Class)</seealso> <seealso cref="P:StormSource.Gps.Distance.Units">Units Property (Distance Class)</seealso> </member><member name="F:StormSource.Gps.FixQuality.NoFix"> <summary>No fix is currently obtained.</summary> </member><member name="F:StormSource.Gps.FixQuality.GpsFix"> <summary>A fix is currently obtained using GPS satellites only.</summary> </member><member name="F:StormSource.Gps.FixQuality.DifferentialGpsFix"> <summary>A fix is obtained using both GPS satellites and DGPS/WAAS ground stations.</summary> </member><member name="F:StormSource.Gps.FixQuality.Estimated"> <summary>Rarely used. The fix is being estimated.</summary> </member><member name="F:StormSource.Gps.FixQuality.NavigationFixNoRealtimePosition"> <summary>Leica® devices only. A navigation fix is obtained, but it may be out of date. No real-time position is available.</summary> </member><member name="F:StormSource.Gps.FixQuality.RealTimePositionAmbiguitiesNotFixed"> <summary>Leica® devices only. A real-time position has been obtained, but there are some unresolved accuracy ambiguities.</summary> </member><member name="F:StormSource.Gps.FixQuality.RealTimePositionAmbiguitiesFixed"> <summary>Leica® devices only. A real-time position has been obtained and all accuracy ambiguities have been resolved.</summary> </member><member name="T:StormSource.Gps.FixQuality"> <summary> Indicates which devices are being used to obtain a fix, other than the GPS device itself. </summary> <remarks> This enumeration is typically used by the <see cref="P:StormSource.Gps.Receiver.FixQuality">FixQuaity</see> property of the <see cref="T:StormSource.Gps.Receiver">Receiver</see> class. </remarks> <example> <code lang="VB"> ' Declare a new receiver Private WithEvents MyReceiver As New Receiver() ' Raised when the fix quality has changed Private Sub OnFixQualityChanged(ByVal sender As Object, ByVal e As FixQualityEventArgs) ' What is the new fix quality? Select Case e.FixQuality Case FixQuality.NoFix ' No fix is obtained Debug.WriteLine("No fix is currently obtained.") Case FixQuality.GpsFix ' A fix is present Debug.WriteLine("A fix has been obtained using only GPS satellites.") Case FixQuality.DifferentialGpsFix ' A differential fix is present Debug.WriteLine("A fix has been obtained using GPS satellites and correction information from DGPS/WAAS ground stations.") Case FixQuality.Estimated ' A fix is being estimated (not an actual fix) Debug.WriteLine("A fix is currently being estimated. ") End Select End Sub </code> <code lang="C#"> // Declare a new receiver Receiver MyReceiver = new Receiver(); // Raised when the fix quality has changed void OnFixQualityChanged(Object sender, FixQualityEventArgs e) { // What is the new fix quality? switch(e.FixQuality) { case FixQuality.NoFix: // No fix is obtained Debug.WriteLine("No fix is currently obtained."); case FixQuality.GpsFix: // A fix is present Debug.WriteLine("A fix has been obtained using only GPS satellites."); case FixQuality.DifferentialGpsFix: // A differential fix is present Debug.WriteLine("A fix has been obtained using GPS satellites and correction information from DGPS/WAAS ground stations."); case FixQuality.Estimated: // A fix is being estimated (not an actual fix) Debug.WriteLine("A fix is currently being estimated. "); } } </code> </example> <seealso cref="P:StormSource.Gps.Receiver.FixQuality">FixQuality Property (Receiver Class)</seealso> </member><member name="F:StormSource.Gps.ComPort.COM1"> <summary>The GPS device is connected to COM1.</summary> </member><member name="F:StormSource.Gps.ComPort.COM2"> <summary>The GPS device is connected to COM2.</summary> </member><member name="F:StormSource.Gps.ComPort.COM3"> <summary>The GPS device is connected to COM3.</summary> </member><member name="F:StormSource.Gps.ComPort.COM4"> <summary>The GPS device is connected to COM4.</summary> </member><member name="F:StormSource.Gps.ComPort.COM5"> <summary>The GPS device is connected to COM5.</summary> </member><member name="F:StormSource.Gps.ComPort.COM6"> <summary>The GPS device is connected to COM6.</summary> </member><member name="F:StormSource.Gps.ComPort.COM7"> <summary> The GPS device is connected to COM7. A common default for PocketPC devices, such as Bluetooth, along with COM8. </summary> </member><member name="F:StormSource.Gps.ComPort.COM8"> <summary> The GPS device is connected to COM8. A common default for PocketPC devices, such as Bluetooth, along with COM7. </summary> </member><member name="F:StormSource.Gps.ComPort.COM9"> <summary>The GPS device is connected to COM9.</summary> </member><member name="F:StormSource.Gps.ComPort.COM10"> <summary>The GPS device is connected to COM10.</summary> </member><member name="F:StormSource.Gps.ComPort.COM11"> <summary>The GPS device is connected to COM11.</summary> </member><member name="F:StormSource.Gps.ComPort.COM12"> <summary>The GPS device is connected to COM12.</summary> </member><member name="F:StormSource.Gps.ComPort.COM13"> <summary>The GPS device is connected to COM13.</summary> </member><member name="F:StormSource.Gps.ComPort.COM14"> <summary>The GPS device is connected to COM14.</summary> </member><member name="F:StormSource.Gps.ComPort.COM15"> <summary>The GPS device is connected to COM15.</summary> </member><member name="F:StormSource.Gps.ComPort.COM16"> <summary>The GPS device is connected to COM16.</summary> </member><member name="F:StormSource.Gps.ComPort.COM17"> <summary>The GPS device is connected to COM17.</summary> </member><member name="F:StormSource.Gps.ComPort.COM18"> <summary>The GPS device is connected to COM18.</summary> </member><member name="F:StormSource.Gps.ComPort.COM19"> <summary>The GPS device is connected to COM19.</summary> </member><member name="F:StormSource.Gps.ComPort.COM20"> <summary>The GPS device is connected to COM20.</summary> </member><member name="T:StormSource.Gps.ComPort"> <summary>An enumeration used to specify which serial port a GPS device is connected to.</summary> <remarks>A valid COM port must be specified in order to begin working with GPS devices. This enumeration of typically used by the <see cref="P:StormSource.Gps.Receiver.ComPort">ComPort</see> property of the <see cref="T:StormSource.Gps.Receiver">Receiver</see> and <see cref="T:StormSource.Gps.Device">Device</see> classes. </remarks> <seealso cref="P:StormSource.Gps.Receiver.ComPort">ComPort Property (Receiver Class)</seealso> <seealso cref="P:StormSource.Gps.Device.ComPort">ComPort Property (Device Class)</seealso> </member><member name="F:StormSource.Gps.FixMode.Automatic"> <summary>Typical value. The GPS device is automatically deciding between a two- and three-dimensional fix.</summary> </member><member name="F:StormSource.Gps.FixMode.Manual"> <summary>Rare value. The user must specify whether a two- or three-dimensional fix is to be used.</summary> </member><member name="T:StormSource.Gps.FixMode"> <summary> Indicates if the GPS device is automatically deciding between a 2-D and a 3-D fix. </summary> <remarks> This enumeration is used by the <see cref="P:StormSource.Gps.Receiver.FixMode">FixMode</see> property of the <see cref="T:StormSource.Gps.Receiver">Receiver</see> class. A vast majority of GPS devices use a setting of Automatic because there is no complicated math behind figuring out if a 2-D fix or 3-D fix is present. If there are three satellites involved in a fix, only the latitude and longitude can be calculated, so the fix is 2-D. If more than three involved, the fix is 3-D. </remarks> <seealso cref="P:StormSource.Gps.Receiver.FixMode">FixMode Property (Receiver Class)</seealso> </member><member name="F:StormSource.Gps.FixMethod.NoFix"> <summary>The GPS device does not have a fix on the current position.</summary> </member><member name="F:StormSource.Gps.FixMethod.Fix2D"> <summary>The GPS device is reporting latitude and longitude.</summary> </member><member name="F:StormSource.Gps.FixMethod.Fix3D"> <summary>The GPS device is reporting latitude, longitude, and altitude.</summary> </member><member name="T:StormSource.Gps.FixMethod"> <summary> Indicates whether a fix is present and if altitude can be calculated along with latitude and longitude. </summary> <remarks> This enumeration is used by the <see cref="P:StormSource.Gps.Receiver.FixMethod">FixMethod</see> property of the <see cref="T:StormSource.Gps.Receiver">Receiver</see> class to indicate if altitude measurements are possible. Altitude measurements are possible whenever there are four or more satellites involved in a fix. </remarks> <example> This example demonstrates how to use the FixMethod enumeration to tell if altitude measurements can be made. NOTE: Some devices have built-in altimeters. These devices can report altitude even when there is no fix present. To support such devices, avoid using this property entirely and use any non-zero altitude measurement. <code lang="VB"> Private WithEvents MyReceiver As New Receiver() ' Raised whenever the fix method has changed Private Sub OnFixMethodChanged(ByVal sender As Object, ByVal e As FixMethodEventArgs) ' What is the new fix method? Select Case e.FixMethod Case FixMethod.NoFix ' We have neither position or altitude Debug.WriteLine("Your position is: Not Yet Available") Debug.WriteLine("Your altitude is: Not Yet Available") Case FixMethod.Fix2D ' We have a position but no altitude Debug.WriteLine("Your position is: " & MyReceiver.Position.ToString) Debug.WriteLine("Your altitude is: Not Yet Available") Case FixMethod.Fix3D ' We have both position and altitude Debug.WriteLine("Your position is: " & MyReceiver.Position.ToString) Debug.WriteLine("Your altitude is: " & MyReceiver.Altitude.ToString) End Select End Sub </code> <code lang="C#"> // Declare a new receiver Private WithEvents MyReceiver As New Receiver() // Raised whenever the fix method has changed void OnFixMethodChanged(Object sender, FixMethodEventArgs e) { // What is the new fix method? switch(e.FixMethod) { case FixMethod.NoFix: // We have neither position or altitude Debug.WriteLine("Your position is: Not Yet Available"); Debug.WriteLine("Your altitude is: Not Yet Available"); case FixMethod.Fix2D: // We have a position but no altitude Debug.WriteLine("Your position is: " & MyReceiver.Position.ToString()); Debug.WriteLine("Your altitude is: Not Yet Available"); case FixMethod.Fix3D: // We have both position and altitude Debug.WriteLine("Your position is: " & MyReceiver.Position.ToString()); Debug.WriteLine("Your altitude is: " & MyReceiver.Altitude.ToString()); } } </code> </example> <seealso cref="P:StormSource.Gps.Receiver.FixMethod">FixMethod Property (Receiver Class)</seealso> </member><member name="F:StormSource.Gps.SentenceType.Recognized"> <summary>The entire block of data was processed with no errors.</summary> </member><member name="F:StormSource.Gps.SentenceType.Unrecognized"> <summary>One or more errors were encountered while processing the block of data. This most often occurs when a checksum does not match the actual data.</summary> </member><member name="T:StormSource.Gps.SentenceType"> <summary>Indicates if a block of NMEA data has been fully interpreted.</summary> <remarks> This enumeration is used by the <see cref="P:StormSource.Gps.SentenceEventArgs.Type">Type</see> property of the <see cref="T:StormSource.Gps.SentenceEventArgs">SentenceEventArgs</see> class to allow the developer to differentiate between recognized and unrecognized sentences if handling multiple events in one method. </remarks> <seealso cref="E:StormSource.Gps.Receiver.SentenceReceived(System.Object,StormSource.Gps.SentenceEventArgs)">SentenceReceived Event (Receiver Class)</seealso> <seealso cref="E:StormSource.Gps.Receiver.UnrecognizedSentenceReceived(System.Object,StormSource.Gps.SentenceEventArgs)">UnrecognizedSentenceReceived Event (Receiver Class)</seealso> </member><member name="F:StormSource.Gps.SatelliteCountType.FixedCount"> <summary>The number of satellites involved in the current fix.</summary> </member><member name="F:StormSource.Gps.SatelliteCountType.ActiveCount"> <summary> The number of satellites detected in the sky, though no signal may be present. </summary> </member><member name="F:StormSource.Gps.SatelliteCountType.TrackedCount"> <summary>The number of satellites with a signal-to-noise ratio above zero.</summary> </member><member name="T:StormSource.Gps.SatelliteCountType"> <summary>Indicates the type of satellite count statistic being measured.</summary> <remarks> This enumeration is used by the <see cref="T:System.Type">Type</see> property of the <see cref="T:StormSource.Gps.SatelliteCountEventArgs">SatelliteCountEventArgs</see> class to allow developers the ability to tell statistics apart when handling multiple events in one method. </remarks> <seealso cref="P:StormSource.Gps.SatelliteCollection.ActiveCount">ActiveCount Property (SatelliteCollection Class)</seealso> <seealso cref="P:StormSource.Gps.SatelliteCollection.TrackedCount">TrackedCount Property (SatelliteCollection Class)</seealso> <seealso cref="P:StormSource.Gps.SatelliteCollection.FixedCount">FixedCount Property (SatelliteCollection Class)</seealso> </member><member name="F:StormSource.Gps.SignalToNoiseRatioRating.None"> <summary>Represents a value of 0. The radio signal is completely obscured.</summary> </member><member name="F:StormSource.Gps.SignalToNoiseRatioRating.Poor"> <summary>Represents a value between 1 and 15. The radio signal is mostly obscured, such as by a building or tree, but might briefly be part of a fix.</summary> </member><member name="F:StormSource.Gps.SignalToNoiseRatioRating.Moderate"> <summary>Represents a value between 16 and 30. The radio signal is partially obscured, but could be part of a sustained fix.</summary> </member><member name="F:StormSource.Gps.SignalToNoiseRatioRating.Good"> <summary>Represents a value between 31 and 40. The radio signal is being received with little interferance and could maintain a reliable fix.</summary> </member><member name="F:StormSource.Gps.SignalToNoiseRatioRating.Excellent"> <summary>Represents a value of 41 or above. The satellite is in direct line of sight from the receiver and can sustain a fix.</summary> </member><member name="T:StormSource.Gps.SignalToNoiseRatioRating"> <summary>Indicates an in-English description of the a satellite's radio signal strength</summary> <remarks>This enumeration is used by the <see cref="P:StormSource.Gps.SignalToNoiseRatio.Rating">Rating</see> property of the <see cref="T:StormSource.Gps.SignalToNoiseRatio">SignalToNoiseRatio</see> class to give an in-English interpretation of satellite radio signal strength. </remarks> </member><member name="F:StormSource.Gps.SpeedUnit.Knots"> <summary>The number of nautical miles travelled in one hour.</summary> </member><member name="F:StormSource.Gps.SpeedUnit.StatuteMilesPerHour"> <summary>The number of statute miles travelled in one hour, also known as MPH.</summary> </member><member name="F:StormSource.Gps.SpeedUnit.KilometersPerHour"> <summary>The number of kilometers travelled in one hour, also known as KPH.</summary> </member><member name="F:StormSource.Gps.SpeedUnit.KilometersPerSecond"> <summary>The number of kilometers travelled in one second, also known as KM/S.</summary> </member><member name="F:StormSource.Gps.SpeedUnit.FeetPerSecond"> <summary>The number of feet travelled in one second, also known as FT/S.</summary> </member><member name="F:StormSource.Gps.SpeedUnit.MetersPerSecond"> <summary>The number of meters travelled in one hour, also known as M/S.</summary> </member><member name="T:StormSource.Gps.SpeedUnit"> <summary>Indicates the unit of measure for speed measurements.</summary> <remarks> This enumeration is used by the <see cref="P:StormSource.Gps.Speed.Units">Units</see> property of the <see cref="T:StormSource.Gps.Speed">Speed</see> class in conjunction with the <see cref="P:StormSource.Gps.Speed.Value">Value</see> property to describe a speed measurement. </remarks> <seealso cref="P:StormSource.Gps.Speed.Units">Units Property (Speed Class)</seealso> <seealso cref="T:StormSource.Gps.Speed">Speed Class</seealso> </member><member name="F:StormSource.Gps.GarminRecordType.Command"> <summary>A transmitted command.</summary> </member><member name="F:StormSource.Gps.GarminRecordType.Event"> <summary>A device event.</summary> </member><member name="F:StormSource.Gps.GarminRecordType.TransferComplete"> <summary>A confirmation that a transfer has completed successfully.</summary> </member><member name="F:StormSource.Gps.GarminRecordType.DateTime"> <summary>The satellite-derived date and time.</summary> </member><member name="F:StormSource.Gps.GarminRecordType.Position"> <summary>The current latitude and longitude.</summary> </member><member name="F:StormSource.Gps.GarminRecordType.ProximityWaypoint"> <summary>Information about nearby waypoints.</summary> </member><member name="F:StormSource.Gps.GarminRecordType.Records"> <summary>Information about supported device protocols.</summary> </member><member name="F:StormSource.Gps.GarminRecordType.RouteHeader"> <summary>Information describing a route.</summary> </member><member name="F:StormSource.Gps.GarminRecordType.RouteWaypoint"> <summary>Information describing segments of a route.</summary> </member><member name="F:StormSource.Gps.GarminRecordType.Almanac"> <summary>Information used to obtain a "hot start" (quickly obtaining a fix).</summary> </member><member name="F:StormSource.Gps.GarminRecordType.Track"> <summary>Information about a "trail of bread crumbs" of visited locations.</summary> </member><member name="F:StormSource.Gps.GarminRecordType.Waypoint"> <summary>Information about a significant location.</summary> </member><member name="F:StormSource.Gps.GarminRecordType.PositionVelocityTime"> <summary>Information about the current position, speed and satellite-derived time.</summary> </member><member name="F:StormSource.Gps.GarminRecordType.RouteLink"> <summary>Information which connects two route segments.</summary> </member><member name="F:StormSource.Gps.GarminRecordType.TrackHeader"> <summary>Information which describes a track log.</summary> </member><member name="F:StormSource.Gps.GarminRecordType.ProductData"> <summary>Information which describes the model and manufacturer of the device.</summary> </member><member name="F:StormSource.Gps.GarminRecordType.TransferDeviceProtocols"> <summary>Information which describes features supported by the device.</summary> </member><member name="T:StormSource.Gps.GarminRecordType"> <summary> Indicates a kind of data packet which can be received from a Garmin® device. </summary> </member><member name="F:StormSource.Gps.GarminCommandType.AbortTransfer"> <summary>Stops the download of the current transfer.</summary> </member><member name="F:StormSource.Gps.GarminCommandType.TransferAlmanac"> <summary>Requests information about the time and location, used for "hot starts" (fast acquisition of satellites).</summary> </member><member name="F:StormSource.Gps.GarminCommandType.TransferPosition"> <summary>Requests information about the current position.</summary> <remarks>NMEA-0183 is recommended instead of this command because NMEA includes dilution of precision information.</remarks> </member><member name="F:StormSource.Gps.GarminCommandType.TransferProximityWaypoints"> <summary>Requests a list of nearby waypoints.</summary> </member><member name="F:StormSource.Gps.GarminCommandType.TransferRoutes"> <summary>Requests a list of stored routes from the device.</summary> </member><member name="F:StormSource.Gps.GarminCommandType.TransferDateTime"> <summary>Requests the current UTC date and time.</summary> </member><member name="F:StormSource.Gps.GarminCommandType.TransferTracks"> <summary>Requests the log of previously-visited positions.</summary> </member><member name="F:StormSource.Gps.GarminCommandType.TransferWaypoints"> <summary>Requests a list of all waypoints from the device.</summary> </member><member name="F:StormSource.Gps.GarminCommandType.TurnOffPower"> <summary>Turns off the device.</summary> </member><member name="F:StormSource.Gps.GarminCommandType.StartPositionVelocityTimeData"> <summary> Start transmitting information about the current location, time, and speed. </summary> </member><member name="F:StormSource.Gps.GarminCommandType.StopPositionVelocityTimeData"> <summary>Stop transmitting information about the current location, time, and speed.</summary> </member><member name="F:StormSource.Gps.GarminCommandType.TransferDeviceInformation"> <summary>Requests information which specifically identifies the device.</summary> </member><member name="F:StormSource.Gps.GarminCommandType.TransferDeviceProtocols"> <summary>Requests information about the device's supported features.</summary> </member><member name="T:StormSource.Gps.GarminCommandType"> <summary>Indicates a type of command which can be sent to a Garmin® device.</summary> <remarks> This enumeration is used by the Send method if the Device class to allow commands to be sent to Garmin® devices which are set to use the Garmin® binary protocol (instead of NMEA-0183). At the time of this writing, not all commands are supported, and supported commands are handled via other classes. For example, calling the Refresh method of the WaypointsCollection class executes a <strong>TransferWaypoints</strong> command and automatically processes resulting data. </remarks> </member><member name="F:StormSource.Gps.DeviceType.Unknown"> <summary>The device has not yet been specifically identified.</summary> </member><member name="F:StormSource.Gps.DeviceType.NmeaCompliantDevice"> <summary>The device supports the NMEA-0183 protocol.</summary> </member><member name="F:StormSource.Gps.DeviceType.GarmineTrexVista"> <summary>Garmin® eTrex Vista.</summary> </member><member name="F:StormSource.Gps.DeviceType.GarmineTrexVenture"> <summary>Garmin® eTrex Venture.</summary> </member><member name="T:StormSource.Gps.DeviceType"> <summary>Indicates the specific model of an identified device.</summary> <remarks> This enumeration is used by the <see cref="P:StormSource.Gps.Device.Type">Type</see> property of the <see cref="T:StormSource.Gps.Device">Device</see> class to specifically identify a GPS device. The Garmin® binary protocol is able to send data which identifies itself. To obtain the user-friendly name of the device, use the <see cref="P:StormSource.Gps.Device.Name">Name</see> property of the Device class. </remarks> <seealso cref="P:StormSource.Gps.Device.Type">Type Property (Device Class)</seealso> <seealso cref="P:StormSource.Gps.Device.Name">Name Property (Device Class)</seealso> </member><member name="F:StormSource.Gps.EllipsoidType.Airy1830"> <summary>Airy 1830</summary> </member><member name="F:StormSource.Gps.EllipsoidType.Ats1977"> <summary>ATS 1977</summary> </member><member name="F:StormSource.Gps.EllipsoidType.AustralianNational1965"> <summary>Australian Natioanl 1965</summary> </member><member name="F:StormSource.Gps.EllipsoidType.Bessel1841"> <summary>Bessel 1841</summary> </member><member name="F:StormSource.Gps.EllipsoidType.Bessel1841Japan"> <summary>Bessel 1841 (Japan)</summary> </member><member name="F:StormSource.Gps.EllipsoidType.Bessel1841Namibia"> <summary>Bessel 1841 (Namibia)</summary> </member><member name="F:StormSource.Gps.EllipsoidType.Clarke1866"> <summary>Clarke 1866</summary> </member><member name="F:StormSource.Gps.EllipsoidType.Clarke1880"> <summary>Clarke 1880</summary> </member><member name="F:StormSource.Gps.EllipsoidType.Everest"> <summary>Everest</summary> </member><member name="F:StormSource.Gps.EllipsoidType.EverestIndia1830"> <summary>Everest India 1830</summary> </member><member name="F:StormSource.Gps.EllipsoidType.Everest1948"> <summary>Everest 1948</summary> </member><member name="F:StormSource.Gps.EllipsoidType.Everest1956"> <summary>Everest 1956</summary> </member><member name="F:StormSource.Gps.EllipsoidType.Everest1969"> <summary>Everest 1969</summary> </member><member name="F:StormSource.Gps.EllipsoidType.EverestPakistan"> <summary>Everest (Pakistan)</summary> </member><member name="F:StormSource.Gps.EllipsoidType.Fischer1960"> <summary>Fischer1960</summary> </member><member name="F:StormSource.Gps.EllipsoidType.Fischer1968"> <summary>Fischer 1968</summary> </member><member name="F:StormSource.Gps.EllipsoidType.Grs80"> <summary>GRS 80</summary> </member><member name="F:StormSource.Gps.EllipsoidType.Hayford1909"> <summary>Hayford 1909</summary> </member><member name="F:StormSource.Gps.EllipsoidType.Helmert1906"> <summary>Helmert 1906</summary> </member><member name="F:StormSource.Gps.EllipsoidType.Hough1960"> <summary>Hough 1960</summary> </member><member name="F:StormSource.Gps.EllipsoidType.Indonesian1974"> <summary>Indonesian 1974</summary> </member><member name="F:StormSource.Gps.EllipsoidType.International1924"> <summary>International 1924</summary> </member><member name="F:StormSource.Gps.EllipsoidType.Krassovsky1940"> <summary>Krassovsky 1940</summary> </member><member name="F:StormSource.Gps.EllipsoidType.Mercury1960"> <summary>Mercury 1960</summary> </member><member name="F:StormSource.Gps.EllipsoidType.ModifiedAiry"> <summary>Airy (Modified)</summary> </member><member name="F:StormSource.Gps.EllipsoidType.ModifiedFischer1960"> <summary>Fischer 1960 (Modified)</summary> </member><member name="F:StormSource.Gps.EllipsoidType.ModifiedMercury1968"> <summary>Mercury 1968 (Modified)</summary> </member><member name="F:StormSource.Gps.EllipsoidType.NewInternational1967"> <summary>New International 1967</summary> </member><member name="F:StormSource.Gps.EllipsoidType.NormalSphere"> <summary>A perfect sphere</summary> </member><member name="F:StormSource.Gps.EllipsoidType.Pakistan"> <summary>Pakistan</summary> </member><member name="F:StormSource.Gps.EllipsoidType.Sgs1985"> <summary>SGS 1985</summary> </member><member name="F:StormSource.Gps.EllipsoidType.SouthAmerican1969"> <summary>South American 1969</summary> </member><member name="F:StormSource.Gps.EllipsoidType.SoutheastAsia"> <summary>Southeast Asia1830</summary> </member><member name="F:StormSource.Gps.EllipsoidType.UserDefined"> <summary>A custom ellipsoid</summary> </member><member name="F:StormSource.Gps.EllipsoidType.Wgs1960"> <summary>World Geodetic System 1966</summary> </member><member name="F:StormSource.Gps.EllipsoidType.Wgs1966"> <summary>World Geodetic System 1966</summary> </member><member name="F:StormSource.Gps.EllipsoidType.Wgs1972"> <summary>World Geodetic System 1972</summary> </member><member name="F:StormSource.Gps.EllipsoidType.Wgs1984"> <summary>World Geodetic System 1984</summary> </member><member name="T:StormSource.Gps.EllipsoidType"> <summary>Indicates an interpretation of the Earth's shape.</summary> <remarks> This property is used by the <see cref="P:StormSource.Gps.Ellipsoid.Type">Type</see> property of the <see cref="T:StormSource.Gps.Ellipsoid">Ellipsoid</see> class to identify this ellipsoid is associated with a positional measurement. Most GPS devices report coordinates using the WGS1984 ellipsoid. The name of an ellipsoid is typically the scientist or organization who made the formulation followed by the year of the formulation. </remarks> <seealso cref="P:StormSource.Gps.Ellipsoid.Type">Type Property (Ellipsoid Class)</seealso> </member><member name="F:StormSource.Gps.DatumType.Adindan"> <summary>Adindan</summary> </member><member name="F:StormSource.Gps.DatumType.Afgooye"> <summary>Afgooye</summary> </member><member name="F:StormSource.Gps.DatumType.AinelAbd1970"> <summary>Ain el Abd 1970</summary> </member><member name="F:StormSource.Gps.DatumType.AmericanSamoa1962"> <summary>American Samoa 1962</summary> </member><member name="F:StormSource.Gps.DatumType.Anna1Astro1965"> <summary>Anna 1 Astro 1965</summary> </member><member name="F:StormSource.Gps.DatumType.AntiguaIslandAstro1943"> <summary></summary> </member><member name="T:StormSource.Gps.DatumType"> <summary>Indicates a specific kind of coordinate system.</summary> <remarks> Datums are used to describe the coordinate systems used by different countries around the world. There is currently no global coordinate system in use by all countries because of dependence on current systems (just as the United States could not quickly convert to the metric system). This enumeration is used by the <see cref="P:StormSource.Gps.Datum.Type">Type</see> property of the <see cref="T:StormSource.Gps.Datum">Datum</see> class. </remarks> <seealso cref="P:StormSource.Gps.Datum.Type">Type Property (Datum Class)</seealso> </member><member name="T:StormSource.Gps.MolodenskyTransformType"> <summary> Indicates a specific kind of three-parameter Molodensky transform used for localized coordinate conversions. </summary> <remarks> This large enumeration is used by the Type property of the MolodenskyTransform class, allowing developers to perform localized coordinate conversions from one system (typically WGS1984) to another country or region. While the Molodensky transform is considered to be a lower-accuracy solution, it requires no large transformation files and can fit inside the GPS.NET framework. </remarks> <seealso cref="P:StormSource.Gps.MolodenskyTransform.Type">Type Property (MolodenskyTransform Class)</seealso> </member><member name="P:My.Resources.MyResources.ResourceManager"> <summary> Returns the cached ResourceManager instance used by this class. </summary> </member><member name="P:My.Resources.MyResources.Culture"> <summary> Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. </summary> </member><member name="T:My.Resources.MyResources"> <summary> A strongly-typed resource class, for looking up localized strings, etc. </summary> </member><member name="P:StormSource.Gps.Controls.FadePanel.ImageA"> <summary> The image displayed at the start, then faded out. </summary> <value>An Image containing a picture to display.</value> <remarks>This property stores the starting image. This image will be faded into <see cref="P:StormSource.Gps.Controls.FadePanel.ImageB">ImageB</see>.</remarks> <example> This example demonstrates how to make one image fade smoothly into another in one second. <code lang="VB"> ' A FadePanel control is added to a form ' ... ' Make the fade time one second MyFadePanel.FadeTime = 1 ' Set the starting image MyFadePanel.ImageA = New Bitmap("C:\PictureStart.jpg") ' Set the ending image MyFadePanel.ImageB = New Bitmap("C:\PictureFinish.jpg") ' Begin the fade effect MyFadePanel.Fade </code> <code lang="C#"> // A FadePanel control is added to a form // ... // Make the fade time one second MyFadePanel.FadeTime = 1; // Set the starting image MyFadePanel.ImageA = new Bitmap("C:\PictureStart.jpg"); // Set the ending image MyFadePanel.ImageB = new Bitmap("C:\PictureFinish.jpg"); // Begin the fade effect MyFadePanel.Fade; </code> </example> <seealso cref="P:StormSource.Gps.Controls.FadePanel.ImageB">ImageB Property</seealso> <seealso cref="P:StormSource.Gps.Controls.FadePanel.FadeTime">FadeTime Method</seealso> <seealso cref="M:StormSource.Gps.Controls.FadePanel.Fade">Fade Method</seealso> </member><member name="P:StormSource.Gps.Controls.FadePanel.ImageB"> <summary> The image displayed at the end of the fading transition. </summary> <value>An Image containing a picture to display.</value> <remarks>This property stores the final image. This image will be faded in from <see cref="P:StormSource.Gps.Controls.FadePanel.ImageA">ImageA</see>.</remarks> <example> This example demonstrates how to make one image fade smoothly into another in one second. <code lang="VB"> ' A FadePanel control is added to a form ' ... ' Make the fade time one second MyFadePanel.FadeTime = 1 ' Set the starting image MyFadePanel.ImageA = New Bitmap("C:\PictureStart.jpg") ' Set the ending image MyFadePanel.ImageB = New Bitmap("C:\PictureFinish.jpg") ' Begin the fade effect MyFadePanel.Fade </code> <code lang="C#"> // A FadePanel control is added to a form // ... // Make the fade time one second MyFadePanel.FadeTime = 1; // Set the starting image MyFadePanel.ImageA = new Bitmap("C:\PictureStart.jpg"); // Set the ending image MyFadePanel.ImageB = new Bitmap("C:\PictureFinish.jpg"); // Begin the fade effect MyFadePanel.Fade; </code> </example> <seealso cref="P:StormSource.Gps.Controls.FadePanel.ImageA">ImageA Property</seealso> <seealso cref="P:StormSource.Gps.Controls.FadePanel.FadeTime">FadeTime Property</seealso> <seealso cref="M:StormSource.Gps.Controls.FadePanel.Fade">Fade Method</seealso> </member><member name="P:StormSource.Gps.Controls.FadePanel.FadeTime"> <summary> The total number of seconds that the fade will take place. </summary> <value>A Double specifying a number of seconds.</value> <remarks>This property controls the speed of the fade effect. A value greater than zero is required, and a value of one is typically used.</remarks> <example> This example demonstrates how to make one image fade smoothly into another in one second. <code lang="VB"> ' A FadePanel control is added to a form ' ... ' Make the fade time one second MyFadePanel.FadeTime = 1 ' Set the starting image MyFadePanel.ImageA = New Bitmap("C:\PictureStart.jpg") ' Set the ending image MyFadePanel.ImageB = New Bitmap("C:\PictureFinish.jpg") ' Begin the fade effect MyFadePanel.Fade </code> <code lang="C#"> // A FadePanel control is added to a form // ... // Make the fade time one second MyFadePanel.FadeTime = 1; // Set the starting image MyFadePanel.ImageA = new Bitmap("C:\PictureStart.jpg"); // Set the ending image MyFadePanel.ImageB = new Bitmap("C:\PictureFinish.jpg"); // Begin the fade effect MyFadePanel.Fade; </code> </example> <seealso cref="P:StormSource.Gps.Controls.FadePanel.ImageA">ImageA Property</seealso> <seealso cref="P:StormSource.Gps.Controls.FadePanel.ImageB">ImageB Property</seealso> <seealso cref="M:StormSource.Gps.Controls.FadePanel.Fade">Fade Method</seealso> </member><member name="M:StormSource.Gps.Controls.FadePanel.#ctor"> <summary>Creates a new instance.</summary> </member><member name="M:StormSource.Gps.Controls.FadePanel.Fade"> <summary> Begins the fading transition from ImageA to ImageB. </summary> <remarks>This method begins the smooth fading process.</remarks> </member><member name="T:StormSource.Gps.Controls.FadePanel"> <summary> Desktop frameworks only. Provides a method for one image to be smoothly faded into another. </summary> <remarks>This control is a freebie which really has little to do with GPS. The trial screen uses this control to smoothly fade in news and updates about GPS.NET.</remarks> </member><member name="M:StormSource.Gps.Ellipsoid.#ctor(StormSource.Gps.EllipsoidType,System.String,StormSource.Gps.Distance,StormSource.Gps.Distance)"> <summary> Creates a new instance with the specified type, name, equatorial raduis and polar radius. </summary> <param name="type">The kind of ellipsoid, typically <strong>EllipsoidType.UserDefined</strong>.</param> <param name="text">The name for the new ellipsoid.</param> <param name="equatorialRadius">A <strong>Distance</strong> object specifying the distance from the center of the Earth to the equator.</param> <param name="polarRadius">A <strong>Distance</strong> object specifying the distance from the center of the Earth to the poles.</param> <remarks>This constructor allows user-defined ellipsoids to be created for specialized applications. </remarks> </member><member name="M:StormSource.Gps.Ellipsoid.#ctor(System.String,StormSource.Gps.Distance,StormSource.Gps.Distance)"> <summary> Creates a new user-defined ellipsoid with the specified name, equatorial raduis and polar radius. </summary> <param name="text">The name for the new ellipsoid.</param> <param name="equatorialRadius">A <strong>Distance</strong> object specifying the distance from the center of the Earth to the equator.</param> <param name="polarRadius">A <strong>Distance</strong> object specifying the distance from the center of the Earth to the poles.</param> <remarks>This constructor allows custom ellipsoids to be created for specialized applications.</remarks> </member><member name="P:StormSource.Gps.Ellipsoid.Type"> <summary> Indicates whether an ellipsoid is part of a built-in list or user-defined. </summary> <value>A value from the <strong>EllipsoidType</strong> enumeration.</value> </member><member name="P:StormSource.Gps.Ellipsoid.Text"> <summary> Indicates the descriptive name of the ellipsoid. </summary> <value>A <strong>String</strong> containing the name of the ellipsoid.</value> <remarks>This property is typically used to display ellipsoid information on a user interface.</remarks> </member><member name="P:StormSource.Gps.Ellipsoid.EquatorialRadius"> <summary>Represents the distance from Earth's center to the equator.</summary> <value>A <strong>Distance</strong> object.</value> <remarks> <para>Since the Earth is not a perfect sphere, but more of a flattened sphere (also known as an "oblate spheroid"), its radius at the equator is further than the radius up to the North or South Pole. Depending on the ellipsoid, the difference between these distances can vary, including the rate of <see cref="P:StormSource.Gps.Ellipsoid.Flattening"> flattening</see>, determining how curved the Earth is. The diagram below shows how the equatorial radius is measured.</para> <para>This property is typically used for geodetic equations beyond those already provided by the GPS.NET framework.</para> <para><img src="EquatorialRadius.jpg"/></para> </remarks> <seealso cref="P:StormSource.Gps.Ellipsoid.PolarRadius">PolarRadius Property</seealso> </member><member name="P:StormSource.Gps.Ellipsoid.PolarRadius"> <summary>Represents the distance from Earth's center to a pole.</summary> <value>A <strong>Distance</strong> object.</value> <remarks> <para>Since the Earth is not a perfect sphere, but more of a flattened sphere (also known as an "oblate spheroid"), its radius at the equator is further than the radius up to the North or South Pole. Depending on the ellipsoid, the difference between these distances can vary, including the rate of <see cref="P:StormSource.Gps.Ellipsoid.Flattening"> flattening</see>, determining how curved the Earth is. The diagram below shows how the polar radius is measured.</para> <para>This property is typically used for geodetic equations beyond those already provided by the GPS.NET framework.</para> <para><img src="EquatorialRadius.jpg"/></para> </remarks> <seealso cref="P:StormSource.Gps.Ellipsoid.EquatorialRadius">EquatorialRadius Property</seealso> </member><member name="P:StormSource.Gps.Ellipsoid.SemiMajorAxis"> <summary> Returns Earth's equatorial radius. </summary> <value>A <strong>Distance</strong> containing Earth's equatorial radius.</value> <remarks>This property behaves exactly the same way as the <see cref="P:StormSource.Gps.Ellipsoid.EquatorialRadius">EquatorialRadius</see> property. It is provided as a convenience for developers who tend to use the terms "semi-major" and "semi-minor" versus "equatorial" and "polar," respectively.</remarks> <seealso cref="P:StormSource.Gps.Ellipsoid.EquatorialRadius">EquatorialRadius Property</seealso> </member><member name="P:StormSource.Gps.Ellipsoid.SemiMinorAxis"> <summary> Returns Earth's polar radius. </summary> <value>A <strong>Distance</strong> containing Earth's polar radius.</value> <remarks>This property behaves exactly the same way as the <see cref="P:StormSource.Gps.Ellipsoid.EquatorialRadius">EquatorialRadius</see> property. It is provided as a convenience for developers who tend to use the terms "semi-major" and "semi-minor" versus "equatorial" and "polar," respectively.</remarks> <seealso cref="P:StormSource.Gps.Ellipsoid.EquatorialRadius">EquatorialRadius Property</seealso> </member><member name="P:StormSource.Gps.Ellipsoid.InverseFlattening"> <summary> Indicates the inverse of the shape of an ellipsoid relative to a sphere. </summary> <value>A <strong>Double</strong> containing the ellipsoid's flattening.</value> <remarks>This property is used frequently in equations. Inverse flattening is defined as one divided by <see cref="P:StormSource.Gps.Ellipsoid.Flattening">flattening</see>: <para><img src="InverseFlattening.jpg"/></para> </remarks> <seealso cref="P:StormSource.Gps.Ellipsoid.EquatorialRadius">EquatorialRadius Property</seealso> </member><member name="P:StormSource.Gps.Ellipsoid.Flattening"> <summary> Indicates the shape of an ellipsoid relative to a sphere. </summary> <value>A <strong>Double</strong> containing the ellipsoid's flattening.</value> <remarks>This property is used frequently in equations. Flattening is defined as: <para><img src="Flattening.jpg"/></para> </remarks> <seealso cref="P:StormSource.Gps.Ellipsoid.EquatorialRadius">EquatorialRadius Property</seealso> </member><member name="T:StormSource.Gps.Ellipsoid"> <summary>Represents a spheroid (a flattened sphere) which estimates Earth's shape.</summary> <remarks> <para>The Earth's surface is rugged, which makes mathematics using Earth's surface difficult to perform. That is to say, there is no mathematical formula which describes the Earth's exact shape. However, the Earth's <i>approximate</i> shape can be determined mathematically, and these spheroid shapes are known as ellipsoids.</para> <para>The first ellipsoid was formulated in the 1800's. Countries used this ellipsoid to develop their own coordinate systems, and maps and charts to go along with it. However, as time and technology progressed, new ellipsoids were formulated to represent (what was believed to be) an even more accurate shape of the Earth. Once again, new coordinate systems and maps were made using the updated model.</para> <para>Today, there are now approximately thirty <see cref="P:StormSource.Gps.Geodesy.Ellipsoids"> known ellipsoids</see>, upon which were created about 120 coordinate systems. This introduces much complexity in the seemingly basic task of plotting a coordinate. This class, along with other classes in the GPS.NET framework, are provided in an attempt to simplify the process of converting between coordinate systems to maximize the value of any map or cartographical data created throughout history.</para> <para>For most programming purposes, ellipsoids are not typically created or modified, but rather serve as the foundation upon which coordinate systems known as "horizontal datums" or just "<see cref="T:StormSource.Gps.Datum">datums</see>" are created.</para> <para> <para> <img src="Ellipsoids.jpg"/> </para> <para> <para>For more information on how GPS.NET provides geodesic information and coordinate conversion services, see the <see cref="T:StormSource.Gps.Position">Position</see>, <see cref="T:StormSource.Gps.UtmPosition">UtmPosition</see>, <see cref="T:StormSource.Gps.Datum">Datum</see>, <see cref="T:StormSource.Gps.Geodesy">Geodesy</see> and <see cref="T:StormSource.Gps.MolodenskyTransform">MolodenskyTransform</see> classes.</para> </para> </para> </remarks> </member><member name="E:StormSource.Gps.Waypoint.BecomesDirty(System.Object,System.EventArgs)"> <summary> Occurs when the object has been changed since it was downloaded from the device. </summary> <remarks> This event is typically used to determine whether or not a waypoint needs to be saved back to the GPS device. This event is the opposite of the <see cref="E:StormSource.Gps.Waypoint.BecomesClean(System.Object,System.EventArgs)"> BecomesClean</see> event. </remarks> <seealso cref="E:StormSource.Gps.Waypoint.BecomesClean(System.Object,System.EventArgs)">BecomesClean Event</seealso> </member><member name="E:StormSource.Gps.Waypoint.BecomesClean(System.Object,System.EventArgs)"> <summary>Occurs when changes made to a waypoint have been saved successfully.</summary> <remarks> This event indicates that any changes made to a waypoint have been stored back onto the GPS device. Some limitations apply when copying waypoints from one device to another. For more information, please see the <see href="StormSource.Gps.Waypoint.Sa ve()"> Save</see> method. </remarks> <seealso cref="E:StormSource.Gps.Waypoint.BecomesDirty(System.Object,System.EventArgs)">BecomesDirty Event</seealso> </member><member name="P:StormSource.Gps.Waypoint.IsDirty"> <summary> Indicates if the waypoint has changed since it was downloaded from the device. </summary> <value> A <strong>Boolean</strong> value. <strong>True</strong> if the waypoint has changed. </value> <remarks> When this property becomes <strong>True</strong>, the <see href="StormSource.Gps.Waypoint.Be comesDirty"> BecomesDirty</see> event is raised. Likewise, when the object is successfully saved back to a GPS device, the <see href="StormSource.Gps.Waypoint.Be comesClean"> BecomesClean</see> event occurs. </remarks> </member><member name="M:StormSource.Gps.Waypoint.Save"> <summary>Saves changes made to a waypoint to the device from which it was downloaded.</summary> </member><member name="M:StormSource.Gps.Waypoint.Save(StormSource.Gps.Device)"> <summary>Saves changes made to waypoint information to a specific GPS device.</summary> </member><member name="P:StormSource.Gps.Waypoint.CurrentDistance"> <summary>Returns the distance from the current position to the waypoint.</summary> </member><member name="P:StormSource.Gps.Waypoint.CurrentTravelTime"> <summary>Returns the current time needed to reach the waypoint's location based on the current position and speed.</summary> </member><member name="M:StormSource.Gps.Waypoint.GetMinimumSpeed(System.TimeSpan)"> <summary>Returns the minimum speed required to travel to the waypoint from the current position within the specified period of time.</summary> </member><member name="M:StormSource.Gps.Waypoint.Parse(System.String)"> <summary>Returns a new instance based upon the specified latitude and longitude</summary> </member><member name="P:StormSource.Gps.Waypoint.Color"> <summary>Returns/sets the color of the symbol associated with the waypoint.</summary> </member><member name="P:StormSource.Gps.Waypoint.Symbol"> <summary>Returns/sets the symbol displayed at the waypoint's location.</summary> </member><member name="P:StormSource.Gps.Waypoint.DisplayMode"> <summary>Returns/sets the method that the symbol is displayed.</summary> </member><member name="P:StormSource.Gps.Waypoint.Altitude"> <summary>Returns/sets the altitude above sea level.</summary> </member><member name="T:StormSource.Gps.Waypoint"> <summary>Represents a position which can be stored in a GPS device.</summary> <remarks> <para><em>NOTE: This release of GPS.NET supports Garmin® waypoints only. Support for other devices may be added in a future release.</em></para> <para>Several hand-held GPS devices allow users to mark notable locations such as destinations, stops along a route, and places of interest. These locations are known as "waypoints" and are typically marked on the device's display with a graphic symbol, a name, a description, plus other identifying information depending on the capabilities of the device. This class contains the functionality to create, edit, and save (but not <em>delete</em>) waypoint information to and from one or more Garmin® GPS devices.</para> <para>The first waypoint-capable Garmin® GPS device was released around 1995 and had the ability to store only a name, latitude and longitude for a waypoint. Now, almost ten years later, there are <em>fifteen</em> individual kinds of waypoints with the ability to store far more than just a name and a symbol. Unfortunately, Garmin® researchers did not preserve backwards compatibility as new products were introduced. As a result, the process of saving a waypoint has become so tangled in varying data structures, protocols and unstandardized enumerative values that many programmers throw their hands up soon after trying to untangle it all.</para> <para>Fortunately, this class is designed to solve all of these challenges and make waypoint management easy. This class allows developers the ability to work with waypoints from any Garmin® GPS device without having to know a <em>thing</em> about the Garmin binary protocol. All of the complexities mentioned above are all handled behind the scenes.</para> <para> <para><strong>Important: Data can be lost when transferring waypoints from newer devices to older devices</strong></para> <para>The Waypoint class contains several properties which describe a waypoint. While these properties can all be saved to newer devices, older devices to not have to ability to store them all. As a result, some care must be taken when transferring waypoint information from a newer device to an older device. For example, if a waypoint is downloaded from a newer Garmin® eTrex Vista, all properties are preserved. If, however, this waypoint were saved to a ten-year-old Garmin® GPS 38, all information except the name is preserved -- <em>the rest of the data is not saved!</em> As a result, developers should be prepared for data loss in these cases. The only guaranteed support by all devices are the first six letters of the waypoint's name, its latitude and its longitude.</para> <para><strong>Important: No functionality is provided to rename or delete a waypoint</strong></para> <para>The Garmin® binary protocol provides no way to rename or delete an existing waypoint (!). As a result, if the name of a waypoint is changed ad then saved, a new waypoint will be created. To be certain that a waypoint will not be saved as a copy, only modify the name property when the waypoint is first created. Waypoints must be deleted manually via the controls on the device.</para> <para><img src="BestPractice.jpg"/></para><para><strong>Make a backup or provide the ability to store waypoint information on disk before modifying waypoints on the device</strong></para> <para>Some devices carry a large number of waypoints created over a long period of time. GPS.NET developers should always offer to store a backup of waypoint information before performing modifications to prevent against data loss which may occur to due sudden power loss or device failure.</para> </para> </remarks> </member><member name="P:StormSource.Gps.SatelliteCollection.ActiveCount"> <summary>Returns the number of satellites detected, regardless of signal strength.</summary> <value>An <strong>Integer</strong>.</value> <remarks> GPS devices report the location and unique identifier for each satellite, whether it is currently or previously detected. This property is typically used to indicate the maximum number of satellites which <em>could possibly</em> be involved in a fix if the device were in wide open sky. For the number of satellites whose satellite signals have been detected, see the TrackedCount property. </remarks> </member><member name="P:StormSource.Gps.SatelliteCollection.TrackedCount"> <summary>Returns the number of satellites whose radio signals have been detected.</summary> <value>An <strong>Integer</strong> value.</value> <remarks> GPS device can only obtain a fix when it can detect radio signals from three or more satellites. This property indicates the number of GPS satellites with a signal strength greater than zero. </remarks> </member><member name="T:StormSource.Gps.SatelliteCollection"> <summary> Represents information about the locations, fix status and signal strength of all detectable GPS satellites. </summary> <remarks> This collection class is used to organize information for up to sixteen GPS satellites. Statistics about the number of active, tracked and fixed satellites is available, along with accessors to retrieve one satellite object from the collection. </remarks> </member><member name="E:StormSource.Gps.Device.BatteryLifeChanged(System.Object,StormSource.Gps.TimeSpanEventArgs)"> <summary>Occurs when the BatteryLife property has changed.</summary> <remarks>Magellan® devices have the ability to report the number of seconds of remaining battery life. This information is stored in the <see cref="P:StormSource.Gps.Device.BatteryLife">BatteryLife</see> property. When the property changes, this event is raised.</remarks> <seealso cref="P:StormSource.Gps.Device.BatteryLife">BatteryLife Property</seealso> </member><member name="E:StormSource.Gps.Device.BaudRateChanged(System.Object,System.EventArgs)"> <summary>Occurs when the baud rate has been automatically or manually adjusted.</summary> <remarks> During communications, if a timeout occurs while waiting for data, the GPS.NET engine will attempt to switch the baud rate from 4800 to 9600 (or vice versa) in an attempt to detect NMEA or Garmin® binary information. If both baud rates are tried with no success, the <see cref="E:StormSource.Gps.Device.Timeout(System.Object,System.EventArgs)">Timeout</see> event is raised, and communications are halted. </remarks> </member><member name="E:StormSource.Gps.Device.DeviceIdentified(System.Object,StormSource.Gps.DeviceEventArgs)"> <summary>Garmin® devices only. Occurs when the device has been uniquely identified.</summary> <remarks> The Garmin® binary protocol includes the ability to identify the specific model of the device. When the device has been identified, this event is raised. This typically occurs shortly after connecting to a Garmin® GPS device set to use the Garmin® binary protocol. </remarks> </member><member name="E:StormSource.Gps.Device.ManufacturerChanged(System.Object,StormSource.Gps.DeviceEventArgs)"> <summary>Occurs when the manufacturer becomes more specifically known.</summary> <remarks> While processing raw GPS data, a particular sentence may be received which gives some indication to the manufacturer of the device. For example, any sentence beginning with "$PGRM" indicates that the device was manufactured by <a href="http://www.garmin.com">Garmin International, Inc.</a> If the device never transmits custom sentences, this event may never be raised. </remarks> <seealso cref="P:StormSource.Gps.Device.Manufacturer">Manufacturer Property</seealso> </member><member name="E:StormSource.Gps.Device.ProductNameChanged(System.Object,System.EventArgs)"> <summary>Occurs when the model of the device becomes more specifically known.</summary> <remarks> Similar to the ManufacturerChanged event, this event is Occurs when information is received which gives clues as to the model of the device. If the device only transmits standard NMEA sentences, this event may not get raised more than once. </remarks> <seealso cref="P:StormSource.Gps.Device.Name">Name Property</seealso> </member><member name="E:StormSource.Gps.Device.ProtocolChanged(System.Object,StormSource.Gps.DeviceEventArgs)"> <summary>Occurs when the method used to transmit GPS data has changed.</summary> <remarks> <para>The GPS.NET processing engine is designed to automatically detect any changes in protocol during run-time. If, for example, a user changes the protocol from Garmin® binayr to NMEA, this event is raised and GPS.NET adjusts itself accordingly.</para> <para><em>NOTE: As support for new protocols is added, this event will be raised more frequently.</em></para> </remarks> </member><member name="E:StormSource.Gps.Device.Timeout(System.Object,System.EventArgs)"> <summary>Occurs when an expected response is not received in a timely fashion.</summary> <remarks> <para>If no response is received from the device after connecting or issuing a command, the GPS.NET processing engine attempts to re-connect using different settings to provoke a response. If all setting combinations have been tried but there is still no response, this event is raised.</para> </remarks> </member><member name="P:StormSource.Gps.Device.IsIdentified"> <summary> Garmin® devices only. Identifies if the devices can be uniquely identified from any other device. </summary> <value>Read only. A <strong>Boolean</strong> value, <strong>True</strong> if the device manufacturer, model, and capabilities have been identified.</value> <remarks> This property becomes <strong>True</strong> once manufacturer, name and software version information has been received from the device. When the device becomes identified, the <see cref="E:StormSource.Gps.Device.DeviceIdentified(System.Object,StormSource.Gps.DeviceEventArgs)">DeviceIdentified</see> event is raised. </remarks> <example> This example writes information about the device if it has been uniquely identified. <code lang="VB"> Dim MyReceiver As New Receiver() ' Has the device been identified? If MyReceiver.Device.IsIdentified Then ' Write the product name of the device (i.e. eTrex Vista®) Debug.WriteLine(MyReceiver.Device.Name) ' Write the manufacturer Debug.WriteLine(MyReceiver.Device.Manufacturer.ToString) ' Write the firmware/software version Debug.WriteLine(MyReceiver.Device.SoftwareVersion Else ' The device has not been identified End If </code> <code lang="C#"> Receiver MyReceiver = new Receiver(); // Has the device been identified? if (MyReceiver.Device.IsIdentified) { // Write the product name of the device (i.e. eTrex Vista®) Debug.WriteLine(MyReceiver.Device.Name); // Write the manufacturer Debug.WriteLine(MyReceiver.Device.Manufacturer.ToString); // Write the firmware/software version Debug.WriteLine(MyReceiver.Device.SoftwareVersion; } else { // The device has not been identified } </code> </example> <seealso cref="E:StormSource.Gps.Device.DeviceIdentified(System.Object,StormSource.Gps.DeviceEventArgs)">DeviceIdentified Event</seealso> </member><member name="M:StormSource.Gps.Device.GetAvailableComPorts"> <summary>Returns a list of available, non-virtual serial ports.</summary> <remarks> <para>This property is useful for assisting the user in figuring out which serial port they should use. Ideally, the serial port settings process would be automatic.</para> <para>NOTE: Virtual serial ports, such as those created by Bluetooth(tm) and other wireless GPS devices, are not included. However, a sweep through com ports 1 through 20 can be performed with acceptable speed. An example is available which demonstrates how to detect available GPS devices in a timely fashion. Please visit the <a href="http://www.gpsdotnet.com/support">GPS.NET support web site</a> for more information.</para> </remarks> <returns> An array containing <strong>Integer</strong> values. A value of 1 indicates that COM1 is available. </returns> </member><member name="M:StormSource.Gps.Device.Equals(System.String)"> <overloads>Compares two GPS devices.</overloads> </member><member name="M:StormSource.Gps.Device.PowerOff"> <summary>Garmin® devices only. Shuts down the device.</summary> <remarks> This method has the same effect as pressing the power button on the device. <para><img src="BestPractice.jpg"/></para><para><strong>Always ask the user for confirmation before issuing a poweroff command.</strong></para> <para>GPS devices can be used in situations where they are not easy to power back on. Other situations, such as piloting aircraft, may demand that a GPS device remain on for safety reasons. Always warn the user before proceeding to issue a call to the <see cref="M:StormSource.Gps.Device.PowerOff">PowerOff</see> method.</para> <para><img src="PowerOff.jpg"/></para><para><strong>GPS devices must be powered back on manually after they are shut down via the <see cref="M:StormSource.Gps.Device.PowerOff">PowerOff</see> method.</strong></para> <para>The Garmin® binary protocol includes no support to turn a GPS device back on programmatically. Therefore, always warn the user that they must manually turn the deice back on before calling the <see cref="M:StormSource.Gps.Device.PowerOff">PowerOff</see> method.</para> </remarks> </member><member name="M:StormSource.Gps.Device.GetColors"> <summary>Garmin® devices only. Returns a list of colors supported by the device.</summary> <remarks> <para>This array is typically used as the contents for a drop-down box for the user when creating a waypoint. Garmin® GPS devices have widely-varying ways in which they can display a waypoint. While a newer device would support several colors and display options, an older device may only support three or even just one color. Therefore, this list of supported colors changes depending on the device. The current maximum number of known colors is 16.</para> </remarks> <returns> An array of one or more values from the <see cref="T:StormSource.Gps.WaypointColor"> WaypointColor</see> enumeration. </returns> </member><member name="M:StormSource.Gps.Device.GetDisplayModes"> <summary> Garmin® devices only. Returns a list of waypoint display modes supported by the device. </summary> <returns> <para>This array is typically used as the contents for a drop-down box for the user when creating a waypoint. An array of one or more of the values from the <see cref="T:StormSource.Gps.WaypointDisplayMode"> WaypointDisplayMode</see> enumeration.:</para> </returns> </member><member name="M:StormSource.Gps.Device.GetSymbols"> <summary> Garmin® devices only.Returns a list of waypoint symbols supported by the device. </summary> <returns> An array of one or more values from the <see cref="T:StormSource.Gps.WaypointSymbol"> WaypointSymbol</see> enumeration. </returns> <remarks> This array is typically used as the contents for a drop-down box for the user when creating a waypoint. Symbols are the most common method used to describe a waypoint, especially if several waypoints must be displayed close to each other. Newer devices are able to support many symbols, whereas older devices may only support about twently. </remarks> </member><member name="P:StormSource.Gps.Device.Type"> <summary> Garmin® devices only. Indicates the specific model of the device if it is uniquely identified. </summary> <value> A value from the <see cref="T:StormSource.Gps.DeviceType">DeviceType</see> enumeration. </value> <remarks> <para>If the device has been uniquely identified (apart from any other device), this property returns a unique code for the device.</para> <para>Currently, only Garmin® devices are supported in the list, but the enumeration will expand as more devices can be identified. Eventually, this property may serve as a "globally unique GPS device ID".</para> </remarks> </member><member name="P:StormSource.Gps.Device.Name"> <summary>Returns a user-friendly name for the device.</summary> <value>A <strong>String</strong> value.</value> <remarks> If the device has been uniquely identified, this property returns the product name of the device (i.e. "eTrex Vista" or "Garmin III"). A more generic name such as "Generic NMEA-compliant Device" may be returned if some device information is known, but not enough to <u>uniquely</u> identify the device. </remarks> <example> This example writes information about the device if it has been uniquely identified. <code lang="VB"> Dim MyReceiver As New Receiver() ' Has the device been identified? If MyReceiver.Device.IsIdentified Then ' Write the product name of the device (i.e. eTrex Vista®) Debug.WriteLine(MyReceiver.Device.Name) ' Write the manufacturer Debug.WriteLine(MyReceiver.Device.Manufacturer.ToString) ' Write the firmware/software version Debug.WriteLine(MyReceiver.Device.SoftwareVersion Else ' The device has not been identified End If </code> <code lang="C#"> Receiver MyReceiver = new Receiver(); // Has the device been identified? if (MyReceiver.Device.IsIdentified) { // Write the product name of the device (i.e. eTrex Vista®) Debug.WriteLine(MyReceiver.Device.Name); // Write the manufacturer Debug.WriteLine(MyReceiver.Device.Manufacturer.ToString); // Write the firmware/software version Debug.WriteLine(MyReceiver.Device.SoftwareVersion; } else { // The device has not been identified } </code> </example> <seealso cref="P:StormSource.Gps.Device.Manufacturer">Manufacturer Property</seealso> <seealso cref="P:StormSource.Gps.Device.SoftwareVersion">SoftwareVersion Property</seealso> </member><member name="P:StormSource.Gps.Device.SupportsWaypoints"> <summary> Garmin® devices only. Identifies if the device can store information about arbitrary locations on Earth. </summary> <value>A <strong>Boolean</strong> value.</value> <remarks> This property should always be checked before performing any operations which require waypoint support from the device. </remarks> <example> <code lang="VB" title="SupportsWaypoints example 1" description="This example demonstrates poor programming practice with waypoints. The Device.SupportsWaypoints property should always be checked before performing waypoint operations."> Dim GPS As New Receiver() GPS.Start() ' Wait for the device to be identified ' ... ' Return the number of waypoints on the device Debug.WriteLine(GPS.Device.Waypoints.Count) </code> <code lang="VB" title="SupportsWaypoints example 2" description="This example demonstrates a GPS.NET best practice by verifying that the device supports waypoints before performing waypoint-related operations."> Dim GPS As New Receiver() GPS.Start() ' Wait for the device to be identified ' ... If GPS.Device.SupportsWaypoints Then Debug.WriteLine(Device.Waypoints.Count) Else Debug.WriteLine("This device does not support waypoints.") End If </code> </example> </member><member name="P:StormSource.Gps.Device.SupportsTracks"> <summary> Garmin® devices only. Identifies if the device supports information about previous travels. </summary> </member><member name="P:StormSource.Gps.Device.SupportsPowerOff"> <summary> Garmin® devices only. Identifies if the device can be turned off programmatically. </summary> <remarks>This property is typically used to determine if a call to the PowerOff method will have any effect on the device. Most Garmin® devices do support a power-off command. <para><img src="BestPractice.jpg"/></para><para><strong>Always ask the user for confirmation before issuing a poweroff command.</strong></para> <para>GPS devices can be used in situations where they are not easy to power back on. Other situations, such as piloting aircraft, may demand that a GPS device remain on for safety reasons. Always warn the user before proceeding to issue a call to the <see cref="M:StormSource.Gps.Device.PowerOff">PowerOff</see> method.</para> <para><img src="PowerOff.jpg"/></para><para><strong>GPS devices must be powered back on manually after they are shut down via the <see cref="M:StormSource.Gps.Device.PowerOff">PowerOff</see> method.</strong></para> <para>The Garmin® binary protocol includes no support to turn a GPS device back on programmatically. Therefore, always warn the user that they must manually turn the deice back on before calling the <see cref="M:StormSource.Gps.Device.PowerOff">PowerOff</see> method.</para> </remarks> </member><member name="P:StormSource.Gps.Device.SupportsIdentification"> <summary> Garmin® devices only. Identifies if the device provides a way to identify itself. </summary> <remarks>This property is used to indicate if a device is able to send information such as the <see cref="P:StormSource.Gps.Device.Name">name</see> and <see cref="P:StormSource.Gps.Device.SoftwareVersion">software version</see>. When connecting to a Garmin® device, GPS.NET will automatically download as much device identification information as possible. Once the device has been identified, the <see cref="P:StormSource.Gps.Device.IsIdentified">IsIdentified</see> property becomes <strong>True</strong> and the <see cref="E:StormSource.Gps.Device.DeviceIdentified(System.Object,StormSource.Gps.DeviceEventArgs)">DeviceIdentified</see> event is raised. </remarks> <seealso cref="P:StormSource.Gps.Device.IsIdentified">IsIdentified Property</seealso> <seealso cref="E:StormSource.Gps.Device.DeviceIdentified(System.Object,StormSource.Gps.DeviceEventArgs)">DeviceIdentified Event</seealso> </member><member name="P:StormSource.Gps.Device.SupportsPositionVelocityTime"> <summary> Garmin® devices only. Indicates if the device is able to report information abut the current position, velocity and time data. </summary> <value> A <strong>Boolean</strong>. <strong>True</strong> if the feature is supported. </value> <remarks> <para>This property is typically used to check if the device can report PVT data. NOTE: PVT data is not supported in version 1.4 of GPS.NET.</para> <para><img src="BestPractice.jpg"/></para><para><strong>Use the NMEA protocol whenever possible for updates regarding the current position.</strong></para> <para>While the Garmin® binary and text protocols are able to report the current location, important precision information is missing which may result in navigation errors. Use the NMEA protocol instead for the greatest control over positional accuracy.</para> </remarks> </member><member name="P:StormSource.Gps.Device.SupportsRoutes"> <summary> Garmin® devices only. Identifies if the device can store pre-defined paths of travel. </summary> <value> A <strong>Boolean</strong>, <strong>True</strong> if the feature is supported. </value> <remarks> <para>Most Garmin® devices can store information about routes.</para> <para><em>NOTE: Routes are not supported in version 1.4. The feature has been postponed to version 1.5.</em></para> </remarks> </member><member name="P:StormSource.Gps.Device.SupportsAlmanac"> <summary> Garmin® devices only. Indicates if the device can communicate information it uses to quickly obtain a fix. </summary> <remarks> Each GPS device contains an "almanac," which is information such as the date, time, correction coefficients and rate of right ascension. When an almanac has valid data, the GPS device can rapidly obtain a fix, known as a "warm" or "hot" start. While every device stores an almanac, only a few devices are able to <em>transmit</em> almanac information. </remarks> <value> A <strong>Boolean</strong>, <strong>True</strong> if the device can transmit its own almanac. </value> </member><member name="P:StormSource.Gps.Device.SoftwareVersion"> <summary> Returns the version of the software or firmware used internally by the device. </summary> <remarks> Some devices, such as the <a href="http://www.delorme.com/earthmate/">DeLorme® EarthMate USB</a>, and all Garmin® devices, are able to report the version of its own firmware. This property is typically used for informational purposes for the user. </remarks> <value>Read-only. A <strong>String</strong> containing the alphanumeric version.</value> <example> This example writes information about the device if it has been uniquely identified. <code lang="VB"> Dim MyReceiver As New Receiver() ' Has the device been identified? If MyReceiver.Device.IsIdentified Then ' Write the product name of the device (i.e. eTrex Vista®) Debug.WriteLine(MyReceiver.Device.Name) ' Write the manufacturer Debug.WriteLine(MyReceiver.Device.Manufacturer.ToString) ' Write the firmware/software version Debug.WriteLine(MyReceiver.Device.SoftwareVersion Else ' The device has not been identified End If </code> <code lang="C#"> Receiver MyReceiver = new Receiver(); // Has the device been identified? if (MyReceiver.Device.IsIdentified) { // Write the product name of the device (i.e. eTrex Vista®) Debug.WriteLine(MyReceiver.Device.Name); // Write the manufacturer Debug.WriteLine(MyReceiver.Device.Manufacturer.ToString); // Write the firmware/software version Debug.WriteLine(MyReceiver.Device.SoftwareVersion; } else { // The device has not been identified } </code> </example> </member><member name="P:StormSource.Gps.Device.StopBits"> <summary>Returns the length of time a stop bit is sent before another data packet begins.</summary> <remarks>This property is used to indicate how many bits of data are sent between each set of <see cref="P:StormSource.Gps.Device.DataBits">data bits</see>. There may either be one, one-and-a-half, or two stop bits. A vast majority of GPS devices use just one stop bit, which is the default value used by GPS.NET.</remarks> <value>A value from the <see cref="T:StormSource.Gps.DataBit">DataBit</see> enumeration.</value> <example> This example configures the receiver to use serial port COM3, two stop bits, and a baud rate of 9600 baud. <code lang="VB"> ' Configure a receiver for COM3 at 9600 baud Dim MyReceiver As New Receiver() MyReceiver.ComPort = ComPort.Com3 MyReceiver.BaudRate = BaudRate.Baud9600 MyReceiver.StopBits = StopBit.Bit2 ' Now that the receiver is configured, begin GPS communications MyReceiver.Start() </code> <code lang="C#"> // Configure a receiver for COM3 at 9600 baud Receiver MyReceiver = new Receiver(); MyReceiver.ComPort = ComPort.Com3; MyReceiver.BaudRate = BaudRate.Baud9600; MyReceiver.StopBits = StopBit.Bit2; // Now that the receiver is configured, begin GPS communications MyReceiver.Start() </code> </example> <seealso cref="T:StormSource.Gps.StopBit">StopBit Enumeration</seealso> <seealso cref="P:StormSource.Gps.Receiver.StopBits">StopBits Property (Receiver Class)</seealso> <seealso cref="P:StormSource.Gps.Device.ComPort">ComPort Property</seealso> <seealso cref="P:StormSource.Gps.Device.BaudRate">BaudRate Property</seealso> <seealso cref="P:StormSource.Gps.Device.DataBits">DataBits Property</seealso> <seealso cref="P:StormSource.Gps.Device.Parity">Parity Property</seealso> </member><member name="P:StormSource.Gps.Device.Manufacturer"> <summary>Returns the name of the company which produces the device.</summary> <remarks> This property is typically used along with the <see cref="P:StormSource.Gps.Device.Name">Name</see> and <see cref="P:StormSource.Gps.Device.SoftwareVersion">SoftwareVersion</see> properties to display in a user interface. </remarks> <value> A value from the <see cref="P:StormSource.Gps.Device.Manufacturer">Manufacturer</see> enumeration. </value> <example> This example writes information about the device if it has been uniquely identified. <code lang="VB"> Dim MyReceiver As New Receiver() ' Has the device been identified? If MyReceiver.Device.IsIdentified Then ' Write the product name of the device (i.e. eTrex Vista®) Debug.WriteLine(MyReceiver.Device.Name) ' Write the manufacturer Debug.WriteLine(MyReceiver.Device.Manufacturer.ToString) ' Write the firmware/software version Debug.WriteLine(MyReceiver.Device.SoftwareVersion Else ' The device has not been identified End If </code> <code lang="C#"> Receiver MyReceiver = new Receiver(); // Has the device been identified? if (MyReceiver.Device.IsIdentified) { // Write the product name of the device (i.e. eTrex Vista®) Debug.WriteLine(MyReceiver.Device.Name); // Write the manufacturer Debug.WriteLine(MyReceiver.Device.Manufacturer.ToString()); // Write the firmware/software version Debug.WriteLine(MyReceiver.Device.SoftwareVersion; } else { // The device has not been identified } </code> </example> <seealso cref="E:StormSource.Gps.Device.ManufacturerChanged(System.Object,StormSource.Gps.DeviceEventArgs)">ManufacturerChanged Event</seealso> <seealso cref="P:StormSource.Gps.Device.Name">Name Property</seealso> <seealso cref="P:StormSource.Gps.Device.SoftwareVersion">SoftwareVersion Property</seealso> </member><member name="P:StormSource.Gps.Device.BatteryLife"> <summary>Magellan® devices only. Returns the battery life remaining for this device.</summary> <remarks>Magellan® devices report the number of seconds of battery life remaining on the device. If battery life information is available, this property will contain a value greater than zero. When this property changes, the <see cref="E:StormSource.Gps.Device.BatteryLifeChanged(System.Object,StormSource.Gps.TimeSpanEventArgs)">BatteryLifeChanged</see> event is raised. </remarks> <example> This example gives a warning if there are under two minutes of battery life remaining. <code lang="VB"> Dim MyGps As New Receiver() ' Is battery life supported by the device? If MyGps.BatteryLife.TotalMinutes > 0 Then ' Yes. Is the remaining life under two minutes? If MyGps.BatteryLife.TotalMinutes < 2 Then ' There is little battery life left! End If End If </code> <code lang="C#"> Receiver MyGps = new Receiver(); // Is battery life supported by the device? if (MyGps.BatteryLife.TotalMinutes > 0) { // Yes. Is the remaining life under two minutes? if (MyGps.BatteryLife.TotalMinutes < 2) { // There is little battery life left! } } </code> </example> <seealso cref="E:StormSource.Gps.Device.BatteryLifeChanged(System.Object,StormSource.Gps.TimeSpanEventArgs)">BatteryLifeChanged Event</seealso> </member><member name="P:StormSource.Gps.Device.BaudRate"> <summary>Controls the number of bits per send sent to and from a serial port.</summary> <remarks>This property is used to indicate how fast the data is being sent from the GPS device. Typically, GPS devices using the NMEA-0183 protocol send data at 4800 baud, which is the default baud rate. If the baud rate is set incorrectly, a connection to the device will be successful, but no data (or garbage) may be received. GPS.NET will attempt to try baud rates of 4800 and 9600 automatically if no response is received from the device. </remarks> <value>A value from the <see cref="P:StormSource.Gps.Device.BaudRate">BaudRate</see> enumeration.</value> <example> This example configures the receiver to use serial port COM3 a baud rate of 9600 baud. <code lang="VB"> ' Configure a receiver for COM3 at 9600 baud Dim MyReceiver As New Receiver() MyReceiver.ComPort = ComPort.Com3 MyReceiver.BaudRate = BaudRate.Baud9600 ' Now that the receiver is configured, begin GPS communications MyReceiver.Start() </code> <code lang="C#"> // Configure a receiver for COM3 at 9600 baud Receiver MyReceiver = new Receiver(); MyReceiver.ComPort = ComPort.Com3; MyReceiver.BaudRate = BaudRate.Baud9600; // Now that the receiver is configured, begin GPS communications MyReceiver.Start() </code> </example> <seealso cref="P:StormSource.Gps.Device.BaudRate">BaudRate Enumeration</seealso> <seealso cref="P:StormSource.Gps.Receiver.BaudRate">BaudRate Property (Receiver Class)</seealso> <seealso cref="P:StormSource.Gps.Device.ComPort">ComPort Property</seealso> <seealso cref="P:StormSource.Gps.Device.DataBits">DataBits Property</seealso> <seealso cref="P:StormSource.Gps.Device.StopBits">StopBits Property</seealso> <seealso cref="P:StormSource.Gps.Device.Parity">Parity Property</seealso> </member><member name="P:StormSource.Gps.Device.ComPort"> <summary>Returns the serial port on which the GPS device is connected.</summary> <remarks><para>The communications (or COM for short) port is the method of communication used between the computer and GPS device. Some devices, such as Bluetooth™ and the DeLorme Earthmate® USB receiver will create their own virtual serial port. If the COM port is not correctly set, an exception may be raised, or no response will be received from the GPS device. This property accepts any integer value along with any value from the <seealso cref="P:StormSource.Gps.Device.ComPort">ComPort</seealso> enumeration.</para> <para><strong>Using GPS Units That Connect to a USB Port</strong></para> <para>Some GPS units, such as more recent models of the DeLorme EarthMate®*, connect via a USB port instead of a serial port. Since a proprietary communication protocol is used to communicate directly with a USB port, it is not included within this namespace. However, many manufacturers include "GPS-to-Serial" drivers which overcome this problem. Use the following list to locate the appropriate drivers. If you know of one not on the list, please <a href="mailto:support@gpsdotnet.com">contact GPS.NET developers</a>.</para> <para><strong>USB-to-Serial Drivers for the DeLorme Earthmate® GPS Receiver</strong></para> <para><see href="http://www.delorme.com/support/gps/uemate005.asp">http://www.delorme.com/support/gps/uemate005.asp</see></para> <para><font size="1">* EarthMate USB is a registered trademark of DeLorme Corporation (www.delorme.com).</font></para> </remarks> <value>A value from the <see cref="P:StormSource.Gps.Device.ComPort">ComPort</see> enumeration.</value> <example> This example configures the receiver to use serial port COM3 a baud rate of 9600 baud. <code lang="VB"> ' Configure a receiver for COM3 at 9600 baud Dim MyReceiver As New Receiver() MyReceiver.ComPort = ComPort.Com3 MyReceiver.BaudRate = BaudRate.Baud9600 ' Now that the receiver is configured, begin GPS communications MyReceiver.Start() </code> <code lang="C#"> // Configure a receiver for COM3 at 9600 baud Receiver MyReceiver = new Receiver(); MyReceiver.ComPort = ComPort.Com3; MyReceiver.BaudRate = BaudRate.Baud9600; // Now that the receiver is configured, begin GPS communications MyReceiver.Start() </code> </example> <seealso cref="P:StormSource.Gps.Device.ComPort">ComPort Enumeration</seealso> <seealso cref="P:StormSource.Gps.Receiver.ComPort">ComPort Property (Receiver Class)</seealso> <seealso cref="P:StormSource.Gps.Device.BaudRate">BaudRate Property</seealso> <seealso cref="P:StormSource.Gps.Device.DataBits">DataBits Property</seealso> <seealso cref="P:StormSource.Gps.Device.StopBits">StopBits Property</seealso> <seealso cref="P:StormSource.Gps.Device.Parity">Parity Property</seealso> </member><member name="P:StormSource.Gps.Device.DataBits"> <summary>Returns the number of data bits sent in between each stop bit.</summary> <remarks>This property is used to indicate how many bits of data are sent between each stop bit. There may either be 5, 6, 7, or 8 data bits, depending on the number you have selected. Both receiver and the transmitter must agree on the number of data bits, as well as the baud rate. Almost all devices transmit data using either 7 or 8 databits. After the data has been transmitted, a stop bit is sent. Typically, GPS devices send 8 bits of data, which is the default of the receiver class.</remarks> <value>A value from the <see cref="T:StormSource.Gps.DataBit">DataBit</see> enumeration.</value> <example> This example configures the receiver to use serial port COM3, seven data bits, and a baud rate of 9600 baud. <code lang="VB"> ' Configure a receiver for COM3 at 9600 baud Dim MyReceiver As New Receiver() MyReceiver.ComPort = ComPort.Com3 MyReceiver.BaudRate = BaudRate.Baud9600 MyReceiver.DataBits = DataBit.Bit7 ' Now that the receiver is configured, begin GPS communications MyReceiver.Start() </code> <code lang="C#"> // Configure a receiver for COM3 at 9600 baud Receiver MyReceiver = new Receiver(); MyReceiver.ComPort = ComPort.Com3; MyReceiver.BaudRate = BaudRate.Baud9600; MyReceiver.DataBits = DataBit.Bit7; // Now that the receiver is configured, begin GPS communications MyReceiver.Start() </code> </example> <seealso cref="T:StormSource.Gps.DataBit">DataBit Enumeration</seealso> <seealso cref="P:StormSource.Gps.Receiver.DataBits">DataBits Property (Receiver Class)</seealso> <seealso cref="P:StormSource.Gps.Device.ComPort">ComPort Property</seealso> <seealso cref="P:StormSource.Gps.Device.BaudRate">BaudRate Property</seealso> <seealso cref="P:StormSource.Gps.Device.StopBits">StopBits Property</seealso> <seealso cref="P:StormSource.Gps.Device.Parity">Parity Property</seealso> </member><member name="P:StormSource.Gps.Device.Parity"> <summary>Returns the error correction method used during communications.</summary> <value>A value from the <see cref="T:StormSource.Gps.Parity">Parity</see> enumeration. Default is <strong>None</strong>.</value> <remarks>This property is rarely used except for some older and more proprietary devices. Parity is a simple error correction method used to verify that information transmitted to or from the GPS device has not become corrupt. For a vast majority of GPS devices, this property will remain at its default value of <strong>None</strong>. </remarks> <example> This example configures the receiver to use serial port COM3, even parity, and a baud rate of 9600 baud. <code lang="VB"> ' Configure a receiver for COM3 at 9600 baud Dim MyReceiver As New Receiver() MyReceiver.ComPort = ComPort.Com3 MyReceiver.BaudRate = BaudRate.Baud9600 MyReceiver.Parity = Parity.Even ' Now that the receiver is configured, begin GPS communications MyReceiver.Start() </code> <code lang="C#"> // Configure a receiver for COM3 at 9600 baud Receiver MyReceiver = new Receiver(); MyReceiver.ComPort = ComPort.Com3; MyReceiver.BaudRate = BaudRate.Baud9600; MyReceiver.Parity = Parity.Even; // Now that the receiver is configured, begin GPS communications MyReceiver.Start() </code> </example> <seealso cref="T:StormSource.Gps.DataBit">DataBit Enumeration</seealso> <seealso cref="P:StormSource.Gps.Receiver.DataBits">DataBits Property (Receiver Class)</seealso> <seealso cref="P:StormSource.Gps.Device.ComPort">ComPort Property</seealso> <seealso cref="P:StormSource.Gps.Device.BaudRate">BaudRate Property</seealso> <seealso cref="P:StormSource.Gps.Device.StopBits">StopBits Property</seealso> <seealso cref="P:StormSource.Gps.Device.Parity">Parity Property</seealso> </member><member name="P:StormSource.Gps.Device.Protocol"> <summary> Returns the GPS data protocol currently in use. </summary> <value>A value from the <see cref="P:StormSource.Gps.Device.Protocol">Protocol</see> enumeration.</value> <remarks><para> GPS.NET data processing engine is able to detect and process multiple data protocols, such as NMEA-0183, Garmin® text, and Garmin® binary protocol, even if the protocol is changed on-the-fly. As a new protocol is detected, this property is changed. When this property changes, the <see cref="E:StormSource.Gps.Device.ProtocolChanged(System.Object,StormSource.Gps.DeviceEventArgs)">ProtocolChanged</see> event is raised.</para> <para><img src="BestPractice.jpg"/></para><para><strong>Use the NMEA protocol whenever possible for updates regarding the current position.</strong></para> <para>While the Garmin® binary and text protocols are able to report the current location, important accuracy information is missing which may result in navigation errors. Use the NMEA protocol instead for the greatest control over positional accuracy.</para> </remarks> <example> This example tests to see if NMEA data is currently being processed by GPS.NET. <code lang="VB"> Dim MyReceiver As New Receiver() ' Is NMEA data currently being processed? If MyReceiver.Device.Protocol = Protocol.Nmea Then ' Yes. End If </code> <code lang="C#"> Receiver MyReceiver = new Receiver(); // Is NMEA data currently being processed? if (MyReceiver.Device.Protocol == Protocol.Nmea) { // Yes. } </code> </example> </member><member name="P:StormSource.Gps.Device.Receiver"> <summary> Returns the instance of the Receiver class owning this instance. </summary> <value>A <see cref="P:StormSource.Gps.Device.Receiver">Receiver</see> object.</value> <remarks>This property is provided to allow developers the ability to find the instance of the Receiver class associated with a device. This is primarily used when there are multiple instances of the Receiver class in existance, such as when transferring <see cref="T:StormSource.Gps.Waypoint">waypoint</see> information from one device to another.</remarks> <seealso cref="T:StormSource.Gps.Receiver">Receiver Class</seealso> </member><member name="M:StormSource.Gps.Device.Send(System.String)"> <summary>Sends a command to the device in the form of a String.</summary> <remarks> This method is typically used by advanced GPS developers who wish to issue a specialized command to the device, such as to tell the device to transmit NMEA data. With time, GPS.NET will be expanded to reduce the need for this method. </remarks> <param name="buffer">A command in text form, such as an NMEA command.</param> </member><member name="M:StormSource.Gps.Device.Send(System.Byte[])"> <overloads>Sends a command or arbitrary information to the device.</overloads> <summary>Sends data to the GPS device in the form of a byte array.</summary> <remarks> Typically used by advanced developers, this method is used to send packets of data using binary protocols such as Garmin® and SiRF®. As GPS.NET is expanded, the need for this method will decrease. </remarks> <param name="buffer">An array of bytes containing a command.</param> </member><member name="P:StormSource.Gps.Device.SupportsWaypointSymbol"> <summary> Garmin® devices only. Identifies if the device can display a graphic icon for each waypoint. </summary> </member><member name="P:StormSource.Gps.Device.SupportsWaypointColor"> <summary> Garmin® devices only. Identifies if the device can store waypoints in different colors. </summary> </member><member name="P:StormSource.Gps.Device.SupportsWaypointComment"> <summary> Garmin® devices only. Identifies if the device can store comments for each waypoint. </summary> </member><member name="P:StormSource.Gps.Device.SupportsWaypointClass"> <summary> Garmin® devices only. Identifies if the device can store categorization information in waypoints. </summary> </member><member name="P:StormSource.Gps.Device.SupportsWaypointSubClass"> <summary> Garmin® devices only. Identifies if the device can store sub-category information in waypoints. </summary> </member><member name="P:StormSource.Gps.Device.SupportsWaypointAltitude"> <summary> Garmin® devices only. Identifies if the device can store altitude information in waypoints. </summary> </member><member name="P:StormSource.Gps.Device.SupportsWaypointDepth"> <summary> Garmin® devices only. Identifies if the device can store depth below water in waypoints. </summary> </member><member name="P:StormSource.Gps.Device.SupportsWaypointAddress"> <summary> Garmin® devices only. Identifies if the device can store address information in waypoints. </summary> </member><member name="P:StormSource.Gps.Device.SupportsWaypointCity"> <summary> Garmin® devices only. Identifies if the device can store city information in waypoints. </summary> </member><member name="P:StormSource.Gps.Device.SupportsWaypointState"> <summary> Garmin® devices only. Identifies if the device can store state/province information in waypoints. </summary> </member><member name="P:StormSource.Gps.Device.SupportsWaypointCountry"> <summary> Garmin® devices only. Identifies if the device can store country information in waypoints. </summary> </member><member name="P:StormSource.Gps.Device.SupportsWaypointFacility"> <summary> Garmin® devices only. Identifies if the device can store names of buildings in waypoints. </summary> </member><member name="P:StormSource.Gps.Device.SupportsWaypointIntersectingRoad"> <summary> Garmin® devices only. Identifies if the device can store the name of a road intersection in waypoints. </summary> </member><member name="P:StormSource.Gps.Device.SupportsWaypointDisplayMode"> <summary> Garmin® devices only. Identifies if the device can display the waypoint in different ways on the device. </summary> </member><member name="M:StormSource.Gps.Device.Dispose"> <summary>Releases unmanaged resources used during serial port communications.</summary> <remarks> This method is called automatically by the Receiver class when it is disposed. There is no need to call this method manually. </remarks> </member><member name="T:StormSource.Gps.Device"> <summary>Represents information about a GPS device.</summary> <remarks> <para>This class is primarily used when working with Garmin® devices. Garmin® devices have the avility to send information which identifies the device and its capabilities. Information such as the <see cref="P:StormSource.Gps.Device.Manufacturer">manufacturer</see>, <see cref="P:StormSource.Gps.Device.Name">product name</see>, and <see cref="P:StormSource.Gps.Device.SupportsWaypoints">support for waypoints</see> are all transmitted by the device and stored in this class. Devices must be set to use the Garmin® binary protocol in order to access this information and call methods such as <see cref="M:StormSource.Gps.Device.PowerOff">PowerOff</see>. This class is used heavily by the <see cref="T:StormSource.Gps.Waypoint">Waypoint</see> class when downloading or uploading waypoint information because Garmin® devices send waypoint information in any of several data protocols. Fortunately, the process of choosing a protocol is completely transparent to the developer.</para> <para>The NMEA-0183 protocol is the most common protocol used by devices. This protocol does not support identification of devices and their capabilities, but some information such as the <see cref="P:StormSource.Gps.Device.Manufacturer">manufacturer</see> can be determined.</para> <para><img src="Device.jpg"/></para> </remarks> <seealso cref="P:StormSource.Gps.Receiver.Device">Device Property (Receiver Class)</seealso> </member><member name="F:StormSource.Gps.Latitude.Equator"> <summary>Represents a latitude of 0°</summary> </member><member name="F:StormSource.Gps.Latitude.TropicOfCapricorn"> <summary>Represents a latitude of 23.5°S</summary> </member><member name="F:StormSource.Gps.Latitude.TropicOfCancer"> <summary>Represents a latitude of 23.5°N</summary> </member><member name="F:StormSource.Gps.Latitude.NorthPole"> <summary>Represents a latitude of 90°N</summary> </member><member name="F:StormSource.Gps.Latitude.SouthPole"> <summary>Represents a latitude of 90°S</summary> </member><member name="F:StormSource.Gps.Latitude.Minimum"> <summary>Represents the minimum possible latitude -90°</summary> </member><member name="F:StormSource.Gps.Latitude.Maximum"> <summary>Represents the maximum possible latitude of 90°</summary> </member><member name="M:StormSource.Gps.Latitude.GetUtmZoneLetter(StormSource.Gps.Latitude)"> <summary>Returns the UTM zone designator for the specified latitude.</summary> </member><member name="P:StormSource.Gps.Latitude.UtmZoneLetter"> <summary>Returns the UTM zone letter which corresponds to the current instance.</summary> <remarks> This function is used by Universal Transverse Mercator (UTM) coordinates to describe a position, much like latitude and longitude. For more information about UTM coordinates, see the UtmPosition class. </remarks> <value>A value from the UtmZone enumeration.</value> <seealso cref="T:StormSource.Gps.UtmZone">UtmZone Enumeration</seealso> </member><member name="M:StormSource.Gps.Latitude.Normalize(System.Double)"> <overloads>Converts a measurement to its equivalent value between -90 and 90.</overloads> </member><member name="M:StormSource.Gps.Latitude.#ctor"> <summary>Creates a new instance with a default value of zero degrees north.</summary> <example> This example creates a new instance of the latitude class. <code lang="VB"> Dim MyLatitude As New Latitude() </code> <code lang="C#"> Latitude MyLatitude = new Latitude(); </code> </example> </member><member name="M:StormSource.Gps.Latitude.#ctor(System.Double)"> <summary> Creates a new instance with the specified decimal degree value. </summary> <param name="decimalDegrees">A <strong>Double</strong> value to store in the <strong>DecimalDegrees</strong> property.</param> <example> This example creates a new latitude of 45 degrees south. <code lang="VB"> Dim MyLatitude As New Latitude(-45) </code> <code lang="C#"> Latitude MyLatitude = new Latitude(-45); </code> </example> </member><member name="M:StormSource.Gps.Latitude.#ctor(System.Double,System.Boolean)"> <summary> Creates a new, immutable instance with the specified decimal degrees. </summary> <param name="decimalDegrees">A <strong>Double</strong> value to store in the <strong>DecimalDegrees</strong> property.</param> <param name="isImmutable">A <strong>Boolean</strong>, True if the object is to be read-only after it is instantiated.</param> <example> This example creates a new, read-only latitude of 40 degrees north. <code lang="VB"> Dim MyLatitude As New Latitude(40) </code> <code lang="C#"> Latitude MyLatitude = new Latitude(40); </code> </example> </member><member name="M:StormSource.Gps.Latitude.#ctor(StormSource.Gps.Angle)"> <summary> Creates a new instance by upgrading the specified <strong>Angle</strong> object. </summary> <param name="angle">An <strong>Angle</strong> object to upgrade.</param> <example> This example creates a new, read-only latitude of 40 degrees north. <code lang="VB"> Dim MyAngle As New Angle(40) Dim MyLatitude As New Latitude(MyAngle) </code> <code lang="C#"> Angle MyAngle = new Angle(40); Latitude MyLatitude = new Latitude(MyAngle); </code> </example> </member><member name="M:StormSource.Gps.Latitude.#ctor(System.Double,StormSource.Gps.LatitudeHemisphere)"> <summary>Creates a new instance using the specified decimal degrees and hemisphere.</summary> <param name="decimalDegrees"> A <strong>Double</strong> specifying a value for the <strong>DecimalDegrees</strong> property. </param> <param name="hemisphere">A value from the <strong>LongitudeHemisphere</strong> enumeration.</param> <remarks> <para>This constructor is typically used to create a latitude when decimal degrees are always expressed as a positive number. Since the Hemisphere property is set <em>after</em> the DecimalDegrees property is set, the DecimalDegrees is adjusted automatically to be positive for the northern hemisphere and negative for the southern hemisphere.</para> <para>If the parameters conflict with each other, the <strong>Hemisphere</strong> parameter takes precedence. Therefore, a value of "-19°N" will become "19°N" (without the negative sign) with no exception being thrown.</para> </remarks> <example> This example creates a new latitude of 39 degrees south. <code lang="VB"> Dim MyLatitude As New Latitude(39, LatitudeHemisphere.South) </code> <code lang="C#"> Latitude MyLatitude = new Latitude(39, LatitudeHemisphere.South); </code> </example> </member><member name="M:StormSource.Gps.Latitude.#ctor(System.Int32,System.Int32,System.Double)"> <summary>Creates a new instance with the specified hours, minutes and seconds.</summary> <param name="hours">An <strong>Integer</strong> specifying the number of hours.</param> <param name="minutes">An <strong>Integer</strong> specifying the number of minutes.</param> <param name="seconds">An <strong>Double</strong> specifying the number of seconds.</param> <example> This example creates a new latitude of 39°12'10" north. <code lang="VB"> Dim MyLatitude As New Latitude(39, 12, 10) </code> <code lang="C#"> Latitude MyLatitude = new Latitude(39, 12, 10); </code> This example creates a new latitude of 39°12'10" south. <code lang="VB"> Dim MyLatitude As New Latitude(-39, 12, 10) </code> <code lang="C#"> Latitude MyLatitude = new Latitude(-39, 12, 10); </code> </example> </member><member name="M:StormSource.Gps.Latitude.#ctor(System.Int32,System.Int32,System.Double,StormSource.Gps.LatitudeHemisphere)"> <summary> Creates a new longitude with the specified hours, minutes, seconds, and hemisphere. </summary> <param name="hours">An <strong>Integer</strong> specifying the number of hours.</param> <param name="minutes">An <strong>Integer</strong> specifying the number of minutes.</param> <param name="seconds">An <strong>Double</strong> specifying the number of seconds.</param> <param name="hemisphere">A value from the <strong>LatitudeHemisphere</strong> enumeration.</param> <example> This example creates a new latitude of 39°12'10" north. <code lang="VB"> Dim MyLatitude As New Latitude(39, 12, 10, LatitudeHemisphere.North) </code> <code lang="C#"> Latitude MyLatitude = new Latitude(39, 12, 10, LatitudeHemisphere.North); </code> This example creates a new latitude of 39°12'10" south. <code lang="VB"> Dim MyLatitude As New Latitude(39, 12, 10, LatitudeHemisphere.South) </code> <code lang="C#"> Latitude MyLatitude = new Latitude(39, 12, 10, LatitudeHemisphere.South); </code> </example> </member><member name="M:StormSource.Gps.Latitude.#ctor(System.Int32,System.Double)"> <summary> Creates a new instance with the specified hours and decimal minutes (minutes combined with seconds). </summary> <param name="hours">An <strong>Integer</strong> specifying the number of hours.</param> <param name="minutes">An <strong>Double</strong> specifying the number of decimal minutes.</param> <example> This example creates a new latitude of 39°12.34' north. <code lang="VB"> Dim MyLatitude As New Latitude(39, 12.34) </code> <code lang="C#"> Latitude MyLatitude = new Latitude(39, 12.34); </code> This example creates a new latitude of 39°12.34 south. <code lang="VB"> Dim MyLatitude As New Latitude(-39, 12.34) </code> <code lang="C#"> Latitude MyLatitude = new Latitude(-39, 12.34); </code> </example> </member><member name="M:StormSource.Gps.Latitude.#ctor(System.Int32,System.Double,StormSource.Gps.LatitudeHemisphere)"> <summary> Creates a new instance with the specified hours, decimal minutes, and hemisphere. </summary> <param name="hours">An <strong>Integer</strong> specifying the number of hours.</param> <param name="minutes">An <strong>Integer</strong> specifying the number of minutes.</param> <param name="hemisphere">A value from the <strong>LatitudeHemisphere</strong> enumeration.</param> <example> This example creates a new latitude of 39°12.34' north. <code lang="VB"> Dim MyLatitude As New Latitude(39, 12.34, LatitudeHemisphere.North) </code> <code lang="C#"> Latitude MyLatitude = new Latitude(39, 12.34, LatitudeHemisphere.North); </code> This example creates a new latitude of 39°12.34 south. <code lang="VB"> Dim MyLatitude As New Latitude(39, 12.34, LatitudeHemisphere.South) </code> <code lang="C#"> Latitude MyLatitude = new Latitude(39, 12.34, LatitudeHemisphere.South); </code> </example> </member><member name="M:StormSource.Gps.Latitude.#ctor(System.String)"> <summary> Creates a new instance by parsing the specified string value. </summary> <param name="value"> <para>A <strong>String</strong> in any of the following formats (or variation depending on the local culture):</para> <para> <table cellspacing="0" cols="4" cellpadding="2" width="100%"> <tbody> <tr> <td>hh</td> <td>hh.h</td> <td>hh mm</td> <td>hh mm.mm</td> </tr> <tr> <td>hh mm ss</td> <td>hh mm ss.sss</td> <td></td> <td></td> </tr> <tr> <td>hh i</td> <td>hh.h i</td> <td>hh mm i</td> <td>hh mm.mm i</td> </tr> <tr> <td>hh mm ss i</td> <td>hh mm ss.sss i</td> <td></td> <td></td> </tr> </tbody> </table> Where <strong>I</strong> represents a case-insensitive hemisphere indicator "N" or "S". </para> <para>Any non-numeric character between numbers is considered a delimiter. Thus, a value of <strong>12°34'56.78"N</strong> or even <strong>12A34B56.78CN</strong> is treated the same as <strong>12 34 56.78 N</strong>.</para> </param> <seealso cref="M:StormSource.Gps.Latitude.Parse(System.String)">Parse</seealso> </member><member name="P:StormSource.Gps.Latitude.CurrentLatitude"> <summary>Returns the latitude of the current location.</summary> </member><member name="M:StormSource.Gps.Latitude.Equals(StormSource.Gps.Latitude)"> <overloads>Compares equivalence between the current instance to</overloads> </member><member name="P:StormSource.Gps.Latitude.DecimalDegrees"> <summary>Returns hours, minutes and seconds as a single decimal value.</summary> </member><member name="P:StormSource.Gps.Latitude.Hours"> <summary>Returns the hours portion of a latitude measurement.</summary> </member><member name="P:StormSource.Gps.Latitude.IsImmutable"> <summary>Indicates if the current instance is read-only.</summary> <returns>An object is considered immutable if it's value(s) cannot be changed. This is set to True for any shared fields in this class.</returns> <remarks> An object is considered "immutable" if it's properties cannot be modified in any way. </remarks> </member><member name="M:StormSource.Gps.Latitude.Clone"> <summary>Creates a mutable copy of the current instance.</summary> <remarks> The cloned object shares the same value for the <see cref="P:StormSource.Gps.Latitude.DecimalDegrees">DecimalDegrees</see> property. The <see cref="P:StormSource.Gps.Latitude.IsImmutable">immutable</see> setting is not copied, thus allowing this method to make a writable (mutable) copy of a read-only shared field. </remarks> <returns>A <strong>Latitude</strong> equivalent to the current instance.</returns> </member><member name="M:StormSource.Gps.Latitude.Parse(System.String)"> <summary> Converts a string-based latitude measurement into a <strong>Latitude</strong> object. </summary> <returns> A new <strong>Latitude</strong> object populated with the specified values. </returns> <remarks> <para>This powerful method is typically used to process data from a data store or a value input by the user. This function can accept any format which can be output by the <see cref="M:StormSource.Gps.Latitude.ToString">ToString</see> method.</para> </remarks> <exception cref="T:System.ArgumentNullException" caption="ArgumentNullException">The Parse method requires a decimal or sexagesimal measurement.</exception> <exception cref="T:System.FormatException" caption="FormatException">1. Only the right-most portion of a sexagesimal measurement can be a fractional value.<br/> 2. Extra characters were encountered while parsing an angular measurement. Only hours, minutes, and seconds are allowed.<br/> 3. The specified text was not fully understood as an angular measurement.</exception> <param name="value"> <para>A <strong>String</strong> in any of the following formats (or variation depending on the local culture):</para> <para> <table cellspacing="0" cols="4" cellpadding="2" width="100%"> <tbody> <tr> <td>hh</td> <td>hh.h</td> <td>hh mm</td> <td>hh mm.mm</td> </tr> <tr> <td>hh mm ss</td> <td>hh mm ss.sss</td> <td></td> <td></td> </tr> <tr> <td>hh i</td> <td>hh.h i</td> <td>hh mm i</td> <td>hh mm.mm i</td> </tr> <tr> <td>hh mm ss i</td> <td>hh mm ss.sss i</td> <td></td> <td></td> </tr> </tbody> </table> Where <strong>I</strong> represents a case-insensitive hemisphere indicator "N" or "S". </para> <para>Any non-numeric character between numbers is considered a delimiter. Thus, a value of <strong>12°34'56.78"N</strong> or even <strong>12A34B56.78CN</strong> is treated the same as <strong>12 34 56.78 N</strong>.</para> </param> <seealso cref="M:StormSource.Gps.Latitude.ToString">ToString Method</seealso> <example> This example creates a new latitude measurement of 23.45S using the Parse method. <code lang="VB"> Dim NewLatitude As Latitude = Latitude.Parse("23.45°S") </code> <code lang="C#"> Latitude NewLatitude = Latitude.Parse("23.45°S"); </code> </example> </member><member name="P:StormSource.Gps.Latitude.Hemisphere"> <summary>Indicates if the latitude is north or south of the equator.</summary> </member><member name="M:StormSource.Gps.Latitude.ToString"> <summary>Outputs the current instance in the form of a string.</summary> </member><member name="M:StormSource.Gps.Latitude.ToString(System.String)"> <overloads>Outputs the current instance as a formatted string.</overloads> </member><member name="M:StormSource.Gps.Latitude.ToString(System.String,System.IFormatProvider)"> <summary> Outputs the current instance as a string using the specified format and culture. </summary> </member><member name="M:StormSource.Gps.Latitude.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)"> <summary>Populates the current instance from serialized data.</summary> </member><member name="T:StormSource.Gps.Latitude"> <summary> Represents a line of constant distance north or south from the equator. </summary> <remarks> <para>Latitude measurements are paired with <see cref="T:StormSource.Gps.Longitude">longitude</see> measurements to specify a specific <see cref="T:StormSource.Gps.Position">position</see> on Earth's surface. Latitudes can range from -90° (the south pole) to 90° (the north pole), with 0° at the equator.</para> <para>If a latitude is south of the equator, it is considered to be in the southern hemisphere and can also be expressed as a positive number with a one-letter indicator of "S" (South) or "N" (North). For example, a latitude of "-45°" can also be expressed as "45°S". A latitude north of the equator is always positive (i.e. "45°N").</para> <para>This diagram shows lines of latitude on the Earth's surface:</para> <para><img src="Latitude.jpg"/></para> </remarks> <seealso cref="T:StormSource.Gps.Longitude">Longitude Class</seealso> <seealso cref="T:StormSource.Gps.Position">Position Class</seealso> </member><member name="P:StormSource.Gps.PositionCollection.First"> <summary>Returns the first item in the collection, if one exists.</summary> <remarks> This property is typically used to access the first item in the collection during a calculation which involves the whole collection. </remarks> <value> The first <strong>Position</strong> in the collection or <strong>null</strong> (<strong>Nothing</strong> in Visual Basic) if the collection is empty. </value> </member><member name="P:StormSource.Gps.PositionCollection.Last"> <summary>Returns the last item in the collection, if it exists.</summary> </member><member name="M:StormSource.Gps.PositionCollection.Add(StormSource.Gps.Position)"> <summary>Adds a Position to the end of the collection.</summary> <remarks> <para>This method is used to add a single Position object to the collection.</para> <para><img src="BestPractice.jpg"/></para><para><strong>Always use Position.Clone() to add the current position to a PositionCollection.</strong></para> <para>The GPS.NET framework is designed to reuse the same instance of a Position object to store the current position and allow developers to bind to events. For this reason, "PositionCollection.Add(Receiver.Position)" is incorrect syntax because it's adding the same instance repeatedly. Instead, use "PositionCollection.Add(Receiver.Position.Clone)" to add the current position as a separate instance each time it's added to the collection.</para> </remarks> <param name="value">A <strong>Position</strong> object to add to the collection.</param> </member><member name="M:StormSource.Gps.PositionCollection.AddRange(System.Collections.ICollection)"> <summary>Adds a collection of Position objects to the current collection.</summary> <remarks> <para>This method is typically used to combine a separate collection of Position objects into the collection.</para> <para><img src="BestPractice.jpg"/></para><para><strong>Always use Position.Clone() to add the current position to a PositionCollection.</strong></para> <para>The GPS.NET framework is designed to reuse the same instance of a Position object to store the current position and allow developers to bind to events. For this reason, "PositionCollection.Add(Receiver.Position)" is incorrect syntax because it's adding the same instance repeatedly. Instead, use "PositionCollection.Add(Receiver.Position.Clone)" to add the current position as a separate instance each time it's added to the collection.</para> </remarks> <param name="c">A collection of <strong>Position</strong> objects to add.</param> </member><member name="P:StormSource.Gps.PositionCollection.Item(System.Int32)"> <summary>Returns a Position object a the specified index.</summary> </member><member name="P:StormSource.Gps.PositionCollection.Items"> <summary>Returns an enumerable list of all Positions in the collection.</summary> </member><member name="M:StormSource.Gps.PositionCollection.Remove(StormSource.Gps.Position)"> <summary> Removes a particular instance of a <strong>Position</strong> object from the collection. </summary> </member><member name="M:StormSource.Gps.PositionCollection.RemoveAt(System.Int32)"> <summary> Removes an item from the collection which is located at the specified index. </summary> <param name="index"> A zero-based <strong>Integer</strong> indicating the position of the item to remove. </param> </member><member name="M:StormSource.Gps.PositionCollection.RemoveRange(System.Int32,System.Int32)"> <summary> Removes a series of objects from the collection starting at the specified index. </summary> </member><member name="M:StormSource.Gps.PositionCollection.Sort"> <summary>Sorts the contents of the collection.</summary> </member><member name="M:StormSource.Gps.PositionCollection.Sort(System.Collections.IComparer)"> <summary>Sorts the collection using the specified custom comparison method.</summary> <param name="comparer"> An <strong>IComparer</strong> object which specifies how one <strong>Position</strong> ranks compared to another <strong>Position</strong>. </param> </member><member name="M:StormSource.Gps.PositionCollection.Sort(System.Int32,System.Int32,System.Collections.IComparer)"> <summary> Sorts a subset of the collection using the specified custom comparison method. </summary> <param name="index"> An <strong>Integer</strong> indicating the location from which to start sorting. </param> <param name="count"> An <strong>Integer</strong> specifying the number of items to include in the sort. </param> <param name="comparer"> An <strong>IComparer</strong> object which specifies how one <strong>Position</strong> ranks compared to another <strong>Position</strong>. </param> </member><member name="M:StormSource.Gps.PositionCollection.Translate(StormSource.Gps.Azimuth,StormSource.Gps.Distance)"> <summary>Shifts the entire collection by the specified bearing and distance.</summary> <remarks> This method is typically used to make adjustments to an entire collection of positions at one time. For example, if each position is located 10 kilometers too far to the north, this method can correct the problem by translating each item 10 kilometers to the south. </remarks> <param name="bearing"> An <strong>Azimuth</strong> indicating the direction in which to shift all positions. </param> <param name="distance">A <strong>Distance</strong> indicating the amount of shift applied.</param> </member><member name="M:StormSource.Gps.PositionCollection.MinimumTime(StormSource.Gps.Speed)"> <summary> Returns the minimum time required to travel through each point in the collection at the given speed. </summary> <returns>A <strong>TimeSpan</strong> containing the length of time required.</returns> <remarks> <para>This method is typically used to see if an entire route can be travelled in time at the current speed. The MinimumSpeed method can be used to calculate what minimum speed is required to reach a destination within a set period of time.</para> <para><img src="BestPractice.jpg"/></para><para><strong>Avoid suggesting that the user increase or decrease speed.</strong></para> <para>The MinimumTime method might yield a result which suggests that the user can make a destination on time by increasing (or decreasing) their current speed. Avoid making recommendations which might cause the user to disobey a maximum (or minimum) speed limit.</para> </remarks> <param name="speed"> A <strong>Speed</strong> indicating how fast to travel through all points in the collection. </param> </member><member name="M:StormSource.Gps.PositionCollection.MinimumSpeed(System.TimeSpan)"> <summary> Returns the minimum speed required to travel through each point in the collection within the given time. </summary> <remarks> <para>This method is typically used to see if an entire route can be travelled at the current speed within the specified length of time. An application could also use this method to calculate how early (or late) arrival time would be if modifications to the speed were made.</para> <para><img src="BestPractice.jpg"/></para><para><strong>Avoid suggesting that the user increase or decrease speed.</strong></para> <para>The MinimumSpeed method does not take into account any local traffic laws. As a result, it might return a result of 90MPH for a route that goes through neighborhoods. Recommendations to slow down should also be avoided for roads that require a minimum speed, such as an interstate highway.</para> </remarks> </member><member name="P:StormSource.Gps.PositionCollection.TotalDistance"> <summary>Returns the total distance to travel through all points.</summary> </member><member name="T:StormSource.Gps.PositionCollection"> <summary>Represents an arbitrary collection of locations on the Earth's surface.</summary> <remarks> <para>This collection provides methods which work with a connected group of locations, such as <see cref="P:StormSource.Gps.PositionCollection.TotalDistance">total travel distance</see>, <see cref="M:StormSource.Gps.PositionCollection.MinimumTime(StormSource.Gps.Speed)">total travel time</see>, and <see cref="M:StormSource.Gps.PositionCollection.MinimumSpeed(System.TimeSpan)">minimum travel speed</see>. This collection is the base class for Garmin® position collections such as <see cref="T:StormSource.Gps.WaypointCollection">waypoints</see>. This class is recommended as a base class for custom functions which work with groups of positions.</para> </remarks> </member><member name="E:StormSource.Gps.Receiver.Acquiring(System.Object,System.EventArgs)"> <summary>Occurs when the receiver has begun listening for GPS data.</summary> <remarks> This event is raised once after a connection was successfully made to a GPS device. It is typically used by applications to perform their own initialization before GPS data is actually processed. </remarks> </member><member name="E:StormSource.Gps.Receiver.AltitudeChanged(System.Object,StormSource.Gps.DistanceEventArgs)"> <summary>Occurs when the distance above sea level has changed.</summary> <remarks> <para>If the GPS device has not yet achieved a fix, this property will return zero. The altitude can be obtained when there are at least four <see cref="P:StormSource.Gps.SatelliteCollection.FixedCount">fixed satellites</see> available. The accuracy of this measurements is dependent upon the <see cref="P:StormSource.Gps.Receiver.VerticalDilutionOfPrecision">vertical dilution of precision</see> (or VDOP). Which this property changes, the <see cref="E:StormSource.Gps.Receiver.AltitudeChanged(System.Object,StormSource.Gps.DistanceEventArgs)"> AltitudeChanged</see> event is raised. This property is updated automatically when new information is received from the GPS device. </para> </remarks> </member><member name="E:StormSource.Gps.Receiver.BaudRateChanged(System.Object,System.EventArgs)"> <summary>Occurs when the speed of communications has been modified.</summary> </member><member name="E:StormSource.Gps.Receiver.BatteryLifeChanged(System.Object,StormSource.Gps.TimeSpanEventArgs)"> <summary> Magellan devices only. Occurs when the remaining battery life has decreased. </summary> <remarks> Magellan devices report the number of minutes and seconds of battery life remaining. While this event supports a limited set of devices, it can be very helpful to handle for the purposes of warning the user when there are only a few minutes of battery life left. </remarks> </member><member name="E:StormSource.Gps.Receiver.BearingChanged(System.Object,StormSource.Gps.AzimuthEventArgs)"> <summary>Occurs when the current direction of travel has changed.</summary> <remarks> <para>This event is one of the cornerstones of the GPS.NET framework, along with the PositionChanged and SpeedChanged events. This event is Occurs when the Bearing property has changed.</para> <para><font color="green"><strong>Best practice:</strong> Some GPS devices can report the current bearing without satellite signals</font></para> <para>Some GPS devices contain internal compasses, and thus are able to report the current direction of travel even when no satellite signals are present. If your application makes use of the current bearing, be prepared to report it with or without a GPS fix present.</para> </remarks> </member><member name="E:StormSource.Gps.Receiver.Connecting(System.Object,System.EventArgs)"> <summary>Raised before a connection to a GPS device is attempted.</summary> <remarks> If a connection to the GPS device is successful, the <see cref="E:StormSource.Gps.Receiver.Connected(System.Object,System.EventArgs)"> Connected</see> event is raised, followed by the <see cref="E:StormSource.Gps.Receiver.Acquiring(System.Object,System.EventArgs)"> Acquiring</see> event. This event is typically used for "apparent speed" to signal the user that progress is being made establishing a connection. </remarks> <seealso cref="E:StormSource.Gps.Receiver.Connected(System.Object,System.EventArgs)">Connected Event</seealso> <seealso cref="E:StormSource.Gps.Receiver.Acquiring(System.Object,System.EventArgs)">Acquiring Event</seealso> </member><member name="E:StormSource.Gps.Receiver.Connected(System.Object,System.EventArgs)"> <summary>Occurs when a connection with a serial device has been established.</summary> <remarks> This event is raised following the <see cref="E:StormSource.Gps.Receiver.Connecting(System.Object,System.EventArgs)"> Connecting</see> event when a successful connection has been made. One thing to take note of is that this event does not necessarily mean that a connection to a <em>GPS device</em> has been made. It is possible that this event could be raised upon a successful connection to a modem or other non-GPS serial device. To be certain that a GPS device has been connected to, capture the <see cref="E:StormSource.Gps.Receiver.SentenceReceived(System.Object,StormSource.Gps.SentenceEventArgs)"> SentenceReceived</see> event. </remarks> </member><member name="E:StormSource.Gps.Receiver.DeviceIdentified(System.Object,StormSource.Gps.DeviceEventArgs)"> <summary> Garmin devices only. Occurs when the device has become uniquely identified. </summary> <remarks> When a connection to a GPS device is established using the Garmin binary protocol, information which specifically identifies the model of the device is transmitted, along with information which identifies the device's capabilities. This event is Occurs when the specific model of the device becomes known. </remarks> <example> This example outputs the name of the GPS device as soon as it becomes known. <code lang="VB" title="DeviceIdentified event example (VB.NET)"> ' Occurs when the device becomes uniquely identified Sub OnDeviceIdentified(ByVal sender As Object, ByVal e As DeviceEventArgs) ' Output the name of the device Debug.WriteLine(e.Device.Name) End Sub </code> <code lang="C#" title="DeviceIdentified event example (C#)"> // Occurs when the device becomes uniquely identified void OnDeviceIdentified(Object sender, DeviceEventArgs e) { // Output the name of the device Debug.WriteLine(e.Device.Name); } </code> </example> </member><member name="E:StormSource.Gps.Receiver.Disconnecting(System.Object,System.EventArgs)"> <summary>Raised just before a disconnection attempt is made.</summary> <remarks> This event is Occurs when the Stop method is called and is typically used by application to perform preliminary clean-up operations, such as disabling menus and buttons for features which require an active GPS connection. Once the disconnection has completed (which typically takes 1/10th of a second), the <see cref="E:StormSource.Gps.Receiver.Disconnected(System.Object,System.EventArgs)">Disconnected</see> event is raised. </remarks> </member><member name="E:StormSource.Gps.Receiver.Disconnected(System.Object,System.EventArgs)"> <summary>Occurs when a disconnection attempt is successful.</summary> <remarks> This event indicates that the connection to the serial device is now closed, and the serial port is now available to be used by other applications. Before a disconnection occurs, the <see cref="E:StormSource.Gps.Receiver.Disconnecting(System.Object,System.EventArgs)"> Disconnecting</see> event is raised. </remarks> </member><member name="E:StormSource.Gps.Receiver.DownloadProgress(System.Object,StormSource.Gps.ProgressEventArgs)"> <summary>Occurs when an item from a collection of items has been downloaded.</summary> <remarks> This event is typically used by applications which use a progress bar to signal download progress. </remarks> </member><member name="E:StormSource.Gps.Receiver.ErrorOccurred(System.Object,StormSource.Gps.ErrorEventArgs)"> <summary>Occurs when an unexpected exception occurs.</summary> <remarks> <para>This event indicates that data processing has failed in an unexpected way.</para> <para><font color="green"><strong>Best practice:</strong> Always wrap event-handling code in Try..Catch blocks</font></para> <para>If a developer writes code which handles a GPS.NET event, and the code throws an unhandled exception, the exception is thrown <em>into</em> the GPS.NET framework. If the developer also does not handle the ErrorOccurred event, their application will behave as if event code is simply ignored.</para> </remarks> </member><member name="E:StormSource.Gps.Receiver.FixMethodChanged(System.Object,StormSource.Gps.FixMethodEventArgs)"> <summary>Occurs when the FixMethod property has changed.</summary> </member><member name="E:StormSource.Gps.Receiver.FixLikelihoodChanged(System.Object,StormSource.Gps.FixLikelihoodEventArgs)"> <summary> Occurs when the likelihood of a fix being obtained (or sustained) has changed. </summary> <remarks>The fix likelihood is the result of a formula which analyzes the combined radio signal strength from all satellites.</remarks> </member><member name="E:StormSource.Gps.Receiver.FixLost(System.Object,System.EventArgs)"> <summary> Occurs when the device no longer has enough satellite signals to calculate the current location. </summary> <remarks> <para>At least three radio signals are required to obtain a fix on the current location. If three signals are present then one becomes obscured (by a building or tree, for example), trilateration can no longer be performed, and the fix is lost. If however, the signal from the satellite is no longer blocked, the fix can be re-obtained, and the <see cref="E:StormSource.Gps.Receiver.FixObtained(System.Object,System.EventArgs)"> FixObtained</see> event is raised.</para> <para>To be notified of which specific satellite caused the fix to be lost, capture the <see cref="E:StormSource.Gps.Receiver.SatelliteFixLost(System.Object,StormSource.Gps.SatelliteEventArgs)"> SatelliteFixLost</see> event.</para> </remarks> </member><member name="E:StormSource.Gps.Receiver.FixModeChanged(System.Object,StormSource.Gps.FixModeEventArgs)"> <summary>Occurs when the FixMode property has changed.</summary> <remarks> This event is rarely fired because the fix mode for most devices remains on <strong>Automatic</strong>. This event will notify of any change back and forth for the units that support it. </remarks> </member><member name="E:StormSource.Gps.Receiver.FixObtained(System.Object,System.EventArgs)"> <summary> Occurs when the GPS device can successfully calculate the current position. </summary> <remarks> GPS devices must receive at least three strong satellite signals in order to be able to calculate the current position. This event is Occurs when the minimum number of fixed satellites has been reached. If additional satellites become fixed, this event is not raised again. To become notified as more or less satellites becomes involved in a fix, use the <see cref="E:StormSource.Gps.Receiver.SatelliteFixLost(System.Object,StormSource.Gps.SatelliteEventArgs)"> SatelliteFixLost</see> and <see cref="E:StormSource.Gps.Receiver.SatelliteFixObtained(System.Object,StormSource.Gps.SatelliteEventArgs)"> SatelliteFixObtained</see> events. </remarks> </member><member name="E:StormSource.Gps.Receiver.FixQualityChanged(System.Object,StormSource.Gps.FixQualityEventArgs)"> <summary>Occurs when a fix is obtained or changes between GPS and DGPS fix.</summary> <remarks> Most frequently, this event is Occurs when the <see cref="P:StormSource.Gps.Receiver.FixQuality">FixQuality</see> property changes from <strong>NoFix</strong> to <strong>GpsFix</strong>. If DGPS ground stations are close enough to assist, this property can change from <strong>GpsFix</strong> to <strong>DifferentialGpsFix</strong>. </remarks> </member><member name="E:StormSource.Gps.Receiver.HorizontalDilutionOfPrecisionChanged(System.Object,StormSource.Gps.DilutionOfPrecisionEventArgs)"> <summary> Occurs when the confidence level in latitude and longitude measurements has changed. </summary> <remarks> This event is Occurs when the <see cref="P:StormSource.Gps.Receiver.HorizontalDilutionOfPrecision">HorizontalDilutionOfPrecision</see> property has changed. This event is important for any applications which make suggestions to the user based on the present position, plus applications which require high-precision measurements. For more information on programming with dilution of precision, see the <see cref="T:StormSource.Gps.DilutionOfPrecision"> DilutionOfPrecision</see> class. </remarks> </member><member name="E:StormSource.Gps.Receiver.MagneticVariationChanged(System.Object,StormSource.Gps.LongitudeEventArgs)"> <summary> Occurs when the offset between True North and Magnetic North becomes known. </summary> <remarks>This event is Occurs when the MagneticVariation property has changed.</remarks> </member><member name="E:StormSource.Gps.Receiver.ManufacturerChanged(System.Object,StormSource.Gps.DeviceEventArgs)"> <summary>Occurs when the manufacturer of the GPS device becomes known.</summary> <remarks> During communications, the GPS device can transmit information which gives clues about the manufacturer. If such information is received, the <see cref="P:StormSource.Gps.Device.Manufacturer">Manufacturer</see> property of the <see cref="P:StormSource.Gps.Receiver.Device">Device</see> class is updated, and this event is raised. </remarks> </member><member name="E:StormSource.Gps.Receiver.MeanDilutionOfPrecisionChanged(System.Object,StormSource.Gps.DilutionOfPrecisionEventArgs)"> <remarks> This event is Occurs whenever the <see cref="P:StormSource.Gps.Receiver.MeanDilutionOfPrecision">MeanDilutionOfPrecision</see> property changes. This event is frequently used by applications requiring high-precision measurements because this event provides immediate notification if position measurements should be paused due to insufficient accuracy. </remarks> <summary> Occurs when the overall confidence level in positional measurements has changed. </summary> </member><member name="E:StormSource.Gps.Receiver.ParsingErrorOccurred(System.Object,StormSource.Gps.ParsingErrorEventArgs)"> <summary>Occurs when a recoverable error has been encountered during data parsing.</summary> <remarks> <para>During GPS communications, corrupted information can cause errors to occur, such as attempting to convert a non-numeric string into a number. Fortunately, since GPS devices transmit data every few seconds, recovering from a parsing error involves only waiting for the next round of data to be received.</para> <para><font color="green"><strong>Best practice:</strong> Parsing errors should not interrupt an application's operation</font></para>Errors which occur during parsing are quickly and automatically corrected when data is re-transmitted. As a result, displaying an error dialog when a parsing error occurs will add no value to an application. Use this event to monitor or log data errors. If a more serious error occurs, the <see cref="E:StormSource.Gps.Receiver.ErrorOccurred(System.Object,StormSource.Gps.ErrorEventArgs)"> ErrorOccurred</see> event is raised. </remarks> </member><member name="E:StormSource.Gps.Receiver.PositionChanged(System.Object,StormSource.Gps.PositionEventArgs)"> <summary>Occurs when the current position has changed.</summary> <remarks> <para>This event is the most frequently used member in the entire GPS.NET framework. This event is Occurs when the <see cref="P:StormSource.Gps.Receiver.Position">Position</see> property changes. For developers working with UTM coordinates, use the <see cref="P:StormSource.Gps.Receiver.UtmPosition">UtmPosition</see> class and <see cref="E:StormSource.Gps.Receiver.UtmPositionChanged(System.Object,StormSource.Gps.UtmPositionEventArgs)">UtmPositionChanged</see> event.</para> <para>For developers wanting to perform position-averaging techniques, the <see cref="E:StormSource.Gps.Receiver.PositionReceived(System.Object,StormSource.Gps.PositionEventArgs)">PositionReceived</see> event should be used.</para> </remarks> </member><member name="E:StormSource.Gps.Receiver.PositionReceived(System.Object,StormSource.Gps.PositionEventArgs)"> <summary>Occurs when the GPS devices reports the current position.</summary> <remarks> This event is used for position-averaging techniques which require position updates even if the current location has not actually changed since the last report. To be notified only when the position actually changes, use the <see cref="E:StormSource.Gps.Receiver.PositionChanged(System.Object,StormSource.Gps.PositionEventArgs)">PositionChanged</see> event. </remarks> <seealso cref="P:StormSource.Gps.Receiver.Position">Position Property</seealso> <seealso cref="T:StormSource.Gps.Position">Position Class</seealso> </member><member name="E:StormSource.Gps.Receiver.PoweredOff(System.Object,System.EventArgs)"> <summary> Garmin devices only. Occurs when the device has been successfully shut down. </summary> <remarks> <para>This event is Occurs when a call to the <see cref="M:StormSource.Gps.Device.PowerOff">PowerOff</see> method of the <see cref="P:StormSource.Gps.Receiver.Device">Device</see> class is successful. This event is the last event raised until the device is powered back on by the user.</para> <para> <para><font color="maroon">WARNING: Once the device has been powered off, it must be manually powered on again.</font></para> <para><font color="green"><strong>Best practice:</strong> Always let the user decide if the device should be powered off.</font></para> <para>Once a GPS device has been powered off, it cannot be powered back on programmatically. Therefore, the device should only be powered off at the user's request. Additionally, the user should be reminded that the device must be powered back on manually and have an option to cancel the initial request.</para> </para> </remarks> <seealso cref="M:StormSource.Gps.Device.PowerOff">PowerOff Method (StormSource.Gps.Device)</seealso> </member><member name="E:StormSource.Gps.Receiver.ProductNameChanged(System.Object,System.EventArgs)"> <summary> Garmin devices only. Occurs when the name of the GPS device becomes more specifically known. </summary> <remarks> When communications begin using the Garmin binary protocol, the device sends information identifying itself and its capabilities, including the name of the device. When the name becomes known, the <see cref="P:StormSource.Gps.Device.Name">Name</see> property of the <see cref="P:StormSource.Gps.Receiver.Device"> Device</see> class is set, and this event is raised. </remarks> </member><member name="E:StormSource.Gps.Receiver.ProtocolChanged(System.Object,StormSource.Gps.DeviceEventArgs)"> <summary>Occurs when the device starts sending data using a different protocol.</summary> <remarks> <para>The GPS.NET framework is designed to detect changes in the current data protocol on-the-fly. This event is Occurs when the user switches the device to another protocol.</para> <para><font color="green"><strong>Best practice:</strong> Devices should be set to the NMEA-0183 protocol when real-time positional data is needed.</font></para> <para>While other protocols, such as the Garmin binary protocol, can transmit positional information, the protocol does not transmit other important information, such as <see cref="T:StormSource.Gps.DilutionOfPrecision"> dilution of precision</see>. This makes NMEA-0183 the most thorough of all supported protocols. The Garmin binary protocol is best-suited for the transmission of tracks, routes, and <see cref="T:StormSource.Gps.WaypointCollection"> waypoints</see>.</para> </remarks> </member><member name="E:StormSource.Gps.Receiver.SatelliteActiveCountChanged(System.Object,StormSource.Gps.SatelliteCountEventArgs)"> <summary>Occurs when the number of satellites with a detected signal has changed.</summary> <remarks> This event is Occurs when the <see cref="N:StormSource.Gps">ActiveCount</see> property of the <see cref="T:StormSource.Gps.SatelliteCollection"> SatelliteCollection</see> class changes. This event is typically raised several times during the process of acquiring a fix. Once a fix is obtained, the count may change very slowly as satellites move below the horizon and new satellites appear. Satellites can be considered active, <see cref="N:StormSource.Gps">tracked</see>, and/or <see cref="N:StormSource.Gps">fixed</see> depending on their signal strength and fix status. </remarks> </member><member name="E:StormSource.Gps.Receiver.SatelliteAzimuthChanged(System.Object,StormSource.Gps.SatelliteEventArgs)"> <summary>Occurs when the angle of a GPS satellite (around the horizon) has changed.</summary> <remarks> This event is Occurs when the <see cref="P:StormSource.Gps.Satellite.Azimuth">Azimuth</see> property of a <see cref="T:StormSource.Gps.Satellite">Satellite</see> object has changed. This event is typically Occurs when information is first received about the location of GPS satellites. Then, once a fix has been obtained, this event is raised again periodically as satellites move across the sky. GPS satellites are constantly in motion -- new satellites rise from the horizon as others set. </remarks> </member><member name="E:StormSource.Gps.Receiver.SatelliteElevationChanged(System.Object,StormSource.Gps.SatelliteEventArgs)"> <summary>Occurs when the angle of a satellite (up from the horizon) has changed.</summary> <remarks> <para>GPS satellites are constantly in motion around Earth in order to prevent "dead spots" where GPS could not be used due to permanently weak or blocked signals. This event is Occurs when the <see cref="N:StormSource.Gps">Elevation</see> property of a <see cref="T:StormSource.Gps.Satellite"> Satellite</see> object has changed. This event is raised frequently when satellite locations are first reported, then the event is raised periodically as satellites move across the sky.</para> </remarks> </member><member name="E:StormSource.Gps.Receiver.SatelliteFixObtained(System.Object,StormSource.Gps.SatelliteEventArgs)"> <summary>Occurs when an additional satellite becomes involved in a fix.</summary> <remarks> If the GPS device is moved into a more open view of the sky, or a satellite moves into view of the GPS device, more satellites can become involved in calculating the current position. GPS devices report more precise information when more satellites are involved in a fix. If a satellite's radio signal later becomes obscured, the <see cref="E:StormSource.Gps.Receiver.SatelliteFixLost(System.Object,StormSource.Gps.SatelliteEventArgs)">SatelliteFixLost</see> event is raised. </remarks> <seealso cref="E:StormSource.Gps.Receiver.SatelliteFixLost(System.Object,StormSource.Gps.SatelliteEventArgs)">SatelliteFixLost Event</seealso> <seealso cref="T:StormSource.Gps.Satellite">Satellite Class</seealso> </member><member name="E:StormSource.Gps.Receiver.SatelliteFixLost(System.Object,StormSource.Gps.SatelliteEventArgs)"> <summary> Occurs when a GPS satellite's radio signal becomes too obscured to be involved in the current fix. </summary> <remarks> <para>This event is Occurs when a satellite's radio signal becomes obscured. Most frequently, this is caused when the GPS device moves into less open sky. This can also occur, however, if the GPS device is stationary because GPS satellites are in constant motion above the sky. If a new satellite becomes involved in the current fix, the <see cref="E:StormSource.Gps.Receiver.SatelliteFixObtained(System.Object,StormSource.Gps.SatelliteEventArgs)"> SatelliteFixObtained</see> event is raised.</para> <para>This event does not suggest that the entire fix has been lost, only that one less satellite is involved in the current fix. To be notified when the entire fix has been lost, trap the <see cref="E:StormSource.Gps.Receiver.FixLost(System.Object,System.EventArgs)"> FixLost</see> event.</para> </remarks> </member><member name="E:StormSource.Gps.Receiver.SatellitePseudoRandomCodeChanged(System.Object,StormSource.Gps.SatelliteEventArgs)"> <summary>Occurs when the unique identifier of a satellite becomes known.</summary> <remarks> <para>This event is Occurs when the <see cref="P:StormSource.Gps.Satellite.PseudoRandomCode">Prc</see> property of a <see cref="T:StormSource.Gps.Satellite"> Satellite</see> object has changed. GPS satellites each transmit a uniquely-identifying number called a Pseudo-Random code which allows GPS receivers to discern one satellite from another from the ground. Satellites never change their PRC, so this event is only Occurs when the PRC becomes known. In some infrequent cases, the GPS device may suddenly decide to report satellites in a different order, which can also cause this event to be raised.</para> <para> <para><font color="green"><strong>Best practice:</strong> Always reference a GPS satellite via its PRC, not its Index.</font></para> <para>Some GPS devices may suddenly decide to report satellite information in a different order, thus causing a <see cref="T:StormSource.Gps.Satellite"> Satellite</see> object's <see cref="P:StormSource.Gps.Satellite.Index">Index</see> property to change. The Prc property, however, allows a developer to always reference the same Satellite object regardless of the order in which satellite data is reported.</para> </para> </remarks> </member><member name="E:StormSource.Gps.Receiver.SentenceReceived(System.Object,StormSource.Gps.SentenceEventArgs)"> <summary>Occurs when a fully-recognized block of data has been interpreted.</summary> <remarks> This event is commonly used to log data received from the GPS device to a file. It is also used frequently just after installing GPS.NET to test that serial port settings are correct. If the data is corrupt or contains a manufacturer-specific sentence that is not yet handled by GPS.NET, the <see cref="E:StormSource.Gps.Receiver.UnrecognizedSentenceReceived(System.Object,StormSource.Gps.SentenceEventArgs)"> UnrecognizedSentenceReceived</see> event is raised. </remarks> <seealso cref="E:StormSource.Gps.Receiver.UnrecognizedSentenceReceived(System.Object,StormSource.Gps.SentenceEventArgs)">UnrecognizedSentenceReceived Event</seealso> <seealso cref="E:StormSource.Gps.Receiver.ParsingErrorOccurred(System.Object,StormSource.Gps.ParsingErrorEventArgs)">ParsingErrorOccurred Event</seealso> </member><member name="E:StormSource.Gps.Receiver.SpeedChanged(System.Object,StormSource.Gps.SpeedEventArgs)"> <summary>Occurs when the current rate of travel has changed.</summary> <remarks> This event is Occurs whenever the <see cref="P:StormSource.Gps.Receiver.Speed">Speed</see> property has changed. This event is typically used to update the user interface with the current speed or to calculate the <see cref="M:StormSource.Gps.Position.TimeTo(StormSource.Gps.Position)"> remaining time to a destination</see>. </remarks> </member><member name="E:StormSource.Gps.Receiver.Timeout(System.Object,System.EventArgs)"> <summary>Occurs when a command sent to the GPS device results in no response.</summary> <remarks> <para>This event is typically Occurs when working with the Garmin binary protocol, which relies heavily upon sending commands to request data. Before this event is raised, the GPS.NET engine will re-connect with a different baud rate and try the command again. If this action still does not work, the Timeout event is raised.</para> <para>Generally speaking, there is no reason why a GPS device would be delayed significantly once a command has been received. Therefore, a timeout usually signifies incorrect serial port settings.</para> </remarks> </member><member name="E:StormSource.Gps.Receiver.UnrecognizedSentenceReceived(System.Object,StormSource.Gps.SentenceEventArgs)"> <summary>Occurs when a corrupt or manufacturer-specific sentence is encountered.</summary> <remarks> <para>The GPS.NET parsing engine can fail to process a sentence for either of two reasons:</para> <list type="bullet"> <item>The sentence was corrupted and contains malformed data.</item> <item>The sentence is of a kind only sent by devices from a specific manufacturer.</item> </list> <para>This event is typically used to make the process of handling sentences extensible. A developer could trap this event and have a custom NMEA sentence parser handle the sentences that GPS.NET could not.</para> </remarks> </member><member name="E:StormSource.Gps.Receiver.UtcDateTimeChanged(System.Object,StormSource.Gps.DateTimeEventArgs)"> <summary>Occurs when the GPS device reports a new satellite-derived time.</summary> <remarks> <para>GPS devices use satellites to determine the current time. This can be very useful because it gives applications the opportunity to check the accuracy of the machine's own clock. This event is Occurs when the <see cref="P:StormSource.Gps.Receiver.UtcDateTime">UtcDateTime</see> property has changed.</para> <para><font color="green"><strong>Best practice:</strong> Use the UtcDateTimeChanged event instead of polling the UtcDateTime property</font></para> <para>Some GPS devices will stop sending the current date and time as soon as a fix is obtained. As a result, the value of the <see cref="P:StormSource.Gps.Receiver.UtcDateTime">UtcDateTime</see> property can quickly become incorrect. On the other hand, the UtcDateTimeChanged event ensures that operations using GPS time always use an updated, accurate time.</para> </remarks> </member><member name="E:StormSource.Gps.Receiver.VerticalDilutionOfPrecisionChanged(System.Object,StormSource.Gps.DilutionOfPrecisionEventArgs)"> <summary>Occurs when the confidence level in altitude measurements has changed.</summary> <remarks> <para>This event is Occurs when the <see cref="P:StormSource.Gps.Receiver.VerticalDilutionOfPrecision">VerticalDilutionOfPrecision</see> property has changed. Vertical dilution of precision (or VDOP) is a measure of how precise altitude measurements are. Depending on the locations of GPS satellites involved in the current fix, the amount of precision can be low or high.</para> <para><font color="green"><strong>Best practice:</strong> Applications which make recommendations to the user based on the current altitude must monitor VDOP to ensure accuracy.</font></para> <para>Vertical dilution of precision allows a developer to make intelligent decisions on whether to use or discard altitude measurements. For example, if a VDOP of fifty is reported, the altitude can be incorrect by a factor of fifty, which may cause an application to make an incorrect suggestion to the user. A VDOP of six or less is recommended for applications which make decisions based on the current altitude.</para> </remarks> <seealso cref="P:StormSource.Gps.Receiver.VerticalDilutionOfPrecision">VerticalDilutionOfPrecision Property</seealso> <seealso cref="E:StormSource.Gps.Receiver.HorizontalDilutionOfPrecisionChanged(System.Object,StormSource.Gps.DilutionOfPrecisionEventArgs)">HorizontalDilutionOfPrecisionChanged Event</seealso> <seealso cref="E:StormSource.Gps.Receiver.MeanDilutionOfPrecisionChanged(System.Object,StormSource.Gps.DilutionOfPrecisionEventArgs)">MeanDilutionOfPrecisionChanged Event</seealso> </member><member name="M:StormSource.Gps.Receiver.#ctor"> <summary>Creates a new instance.</summary> <remarks> <para>This constructor uses default settings for the serial port. The settings are set to a configuration which will work with a majority of NMEA-compliant GPS devices. These settings are:</para> <list type="bullet"> <item>Baud rate is set to 4800</item> <item>Data bits is set to 8</item> <item>Stop bits is set to 1</item> <item>Parity is set to None</item> <item>COM port is set to COM1</item> </list> <para>Typically, developers need only set the <see cref="P:StormSource.Gps.Receiver.ComPort">ComPort</see> property to begin successful communications.</para>To Receiver can also be initialized via its constructor. </remarks> </member><member name="P:StormSource.Gps.Receiver.Device"> <summary>Returns hardware-specific information about a GPS device.</summary> </member><member name="M:StormSource.Gps.Receiver.Reset"> <summary> Sets all properties to the state which existed before GPS information was received. </summary> <remarks> <para>By default, the <strong>Receiver</strong> class preserves all last-known information received from the GPS device, until it is destructed. This method provides a way for developers to discard all property values without having to re-instantiate the class.</para> <para><em>Possible Improvement: As properties are set, events are not raised to signal that properties were changed. If you prefer to be notified of properties as they are reset, please make a feature request for development team via the feedback link in the upper-right corner.</em></para> </remarks> </member><member name="P:StormSource.Gps.Receiver.DifferentialGps"> <summary>Returns information about the current fix if ground stations are involved.</summary> </member><member name="M:StormSource.Gps.Receiver.Parse(System.String)"> <param name="data"> A <strong>String</strong> containing one or more raw NMEA-0183 or Garmin® text sentences </param> <summary>Interprets one or more NMEA-0183 or Garmin® text data sentences.</summary> <remarks> <para>This powerful method is most often used to parse previously-saved data which exists in binary form, such as data transmitted using the Garmin® binary protocol. However, any of the following protocols are accepted:</para> <list type="bullet"> <item>NMEA-0183</item> <item>Garmin® binary protocol</item> <item>Garmin® text protocol</item> </list> <para>The receiver will automatically recognize data using varying protocols in the same array. The Parse method is referred to as the "wood chipper" since it can parse large blocks of data using mixed protocols. As data is parsed, the receiver behaves the same was as if the data was being received live from the device. As such, all properties and events are updated accordingly.</para> <para>To parse GPS data which exists in the form of a byte array, such as Garmin® binary data, use the <see cref="M:StormSource.Gps.Receiver.Parse(System.String)">Parse(Byte())</see> method.</para> <para>For more information on how to transmit binary information to a GPS receiver, see the <see cref="M:StormSource.Gps.Device.Send(System.String)">Send</see> method of the <see cref="P:StormSource.Gps.Receiver.Device">Device</see> class.</para> </remarks> </member><member name="M:StormSource.Gps.Receiver.Parse(System.Byte[])"> <overloads>Interprets a block of raw NMEA-0813, Garmin® binary or Garmin® text data.</overloads> <summary>Interprets one or more Garmin® binary data packets.</summary> <param name="data">A byte array containing GPS data to interpret.</param> <returns> <strong>True</strong> if the entire block has been successfully interpreted, otherwise <strong>False</strong>. </returns> <remarks> <para>This powerful method is most often used to parse previously-saved data which exists in binary form, such as data transmitted using the Garmin® binary protocol. However, any of the following protocols are accepted:</para> <list type="bullet"> <item>NMEA-0183</item> <item>Garmin® binary protocol</item> <item>Garmin® text protocol</item> </list> <para>The receiver will automatically recognize data using varying protocols in the same array. The Parse method is referred to as the "wood chipper" since it can parse large blocks of data using mixed protocols. As data is parsed, the receiver behaves the same was as if the data was being received live from the device. As such, all properties and events are updated accordingly.</para> <para>To parse GPS data which exists in the form of a String, such as NMEA-0183 data, use the <see cref="M:StormSource.Gps.Receiver.Parse(System.String)">Parse(String)</see> method overload.</para> <para>For more information on how to transmit binary information to a GPS receiver, see the <see cref="M:StormSource.Gps.Device.Send(System.String)">Send</see> method of the <see cref="P:StormSource.Gps.Receiver.Device">Device</see> class.</para> </remarks> </member><member name="P:StormSource.Gps.Receiver.CrossTrackError"> <summary>Returns the distance away from the current route, including recommended steering direction to get back on route.</summary> </member><member name="P:StormSource.Gps.Receiver.ComPort"> <summary>Controls which serial port should be used for GPS communications.</summary> </member><member name="P:StormSource.Gps.Receiver.Parity"> <summary> Controls the error correction method used during GPS device communications. </summary> </member><member name="P:StormSource.Gps.Receiver.Altitude"> <summary>Returns the current distance above sea level.</summary> <remarks> <para>If the GPS device has not yet achieved a fix, this property will return zero. The altitude is available if any of the following conditions is true:</para> <list type="bullet"> <item>The GPS device is using radio signals from at least four <see cref="P:StormSource.Gps.SatelliteCollection.FixedCount">fixed satellites</see>, or</item> <item>The GPS device contains an internal altimeter and does not use GPS satellites for altitude measurements.</item> </list> <para>When this property changes, the <see cref="E:StormSource.Gps.Receiver.AltitudeChanged(System.Object,StormSource.Gps.DistanceEventArgs)"> AltitudeChanged</see> event is raised. This property is updated automatically as new information is received from the GPS devices, regardless of its technique used to determine the current altitude.</para> <para><img src="BestPractice.jpg"/></para><para><strong>Use the VerticalDilutionOfPrecision property if your application makes recommendation to the user based upon the current altitude.</strong></para> <para>Applications which make suggestions to the user based on the current altitude must frequently use the <see cref="T:StormSource.Gps.DilutionOfPrecision"> dilution of precision</see> (or DOP) properties to determine whether or not to use or discard altitude measurements. Failure to utilize DOP can cause an application to make an inaccurate suggestion.</para> </remarks> <example> <code lang="VB" title="Altitude property example (VB.NET)" description="This example examines the altitude to see if the GPS device is near sea level, or in the mountains."> ' Check the altitude in feet to see if the receiver is near sea level, or above a mile high If GPS.Altitude.ToFeet.Value <= 400 Then Debug.WriteLine("How is the ocean?") ElseIf GPS.Altitude.ToFeet.Value >= 5280 Then Debug.WriteLine("How is it in the mountains?") Else Debug.WriteLine("You are between the mountains and sea level.") End If </code> <code lang="C#" title="Altitude property example (C#)" description="This example examines the altitude to see if the GPS device is near sea level, or in the mountains."> // Check the altitude in feet to see if the receiver is near sea level, or above a mile high if (GPS.Altitude.ToFeet().Value <= 400) { Debug.WriteLine("How is the ocean?"); } else if (GPS.Altitude.ToFeet().Value >= 5280) { Debug.WriteLine("How is it in the mountains?"); } else { Debug.WriteLine("You are between the mountains and sea level."); } </code> </example> </member><member name="P:StormSource.Gps.Receiver.AltitudeAboveWgs1984"> <summary> Returns the current distance above an imaginary ellipsoid inside the Earth. </summary> </member><member name="P:StormSource.Gps.Receiver.Bearing"> <summary>Returns the current direction of travel.</summary> </member><member name="M:StormSource.Gps.Receiver.SetLicenseKey(System.String)"> <summary> For registered owners, sets a license key which suppresses any "nag" screens. </summary> </member><member name="P:StormSource.Gps.Receiver.MagneticBearing"> <summary>Returns the current direction of travel, oriented with Magnetic North.</summary> </member><member name="M:StormSource.Gps.Receiver.CancelWaitForFix"> <summary> Aborts a previous call to the <see cref="M:StormSource.Gps.Receiver.WaitForFix">WaitForFix</see> method. </summary> </member><member name="M:StormSource.Gps.Receiver.CancelWaitForData"> <summary> Aborts a previous call to the <see cref="M:StormSource.Gps.Receiver.WaitForData">WaitForData</see> method. </summary> </member><member name="M:StormSource.Gps.Receiver.CancelWaitForPosition"> <summary> Aborts a previous call to the <see cref="M:StormSource.Gps.Receiver.WaitForPosition">WaitForPosition</see> method. </summary> </member><member name="P:StormSource.Gps.Receiver.Enabled"> <summary>Controls whether or not GPS communications are active.</summary> </member><member name="P:StormSource.Gps.Receiver.FixMethod"> <summary>Indicates if the fix is two-dimensional or three-dimensional.</summary> <value> A value from the <see cref="T:StormSource.Gps.FixMethod">FixMethod</see> enumeration. </value> <remarks> <para>This property is typically used to determine whether or not to begin reading <see cref="P:StormSource.Gps.Receiver.Altitude">altitude</see> measurements. When three satellites are involved in a fix, the latitude and longitude can be determined and it is known as a "2D fix." When four or more satellites are involved, the altitude can be calculated in addition to latitude and longitude, otherwise known as a "3D fix."</para> <para><img src="BestPractice.jpg"/></para><para><strong>FixMethod should not control whether altitude measurements are made.</strong></para><para> This property is provided for completeness only. Some GPS devices have a built-in altimeter and therefore do not require a GPS satellite fix in order to report an accurate altitude. As such, you should always use the <see cref="P:StormSource.Gps.Receiver.Altitude">Altitude</see> and <see cref="E:StormSource.Gps.Receiver.AltitudeChanged(System.Object,StormSource.Gps.DistanceEventArgs)"> AltitudeChanged</see> members to obtain altitude information.</para> </remarks> </member><member name="P:StormSource.Gps.Receiver.FixMode"> <summary>Indicates if the GPS device is automatically determining the fix method.</summary> </member><member name="P:StormSource.Gps.Receiver.FixQuality"> <summary> Indicates if the fix is estimated, a "regular" satellite fix, or a "differential" fix using ground stations. </summary> </member><member name="P:StormSource.Gps.Receiver.FixLikelihood"> <summary> Returns the likelihood that a fix will be obtained (or sustained if there is already a fix). </summary> <remarks> <para>This property is a fuzzy logic interpretation used to see if a fix will soon be obtained. If a fix has already been obtained, this property can be used to determine the likelihood that the fix will continue to be sustained. As an example, if an application is about to take a measurement in a few seconds, it can use this property to decide if the fix will probably still be present when the measurement is performed.</para> <para><em><strong>Developer Tip:</strong> GPS.NET beta testers have used this property in conjunction with a ProgressBar control to give the user a sense of progress towards obtaining a fix, plus as a means to tell the user if they need to find a more clear view of the sky. Although it's possible for the progress bar to go backwards using this property, users have reported that this technique was useful.</em></para> </remarks> <value> A value from the <see cref="P:StormSource.Gps.Receiver.FixLikelihood"> FixLikelihood</see> enumeration. </value> </member><member name="P:StormSource.Gps.Receiver.HorizontalPositionError"> <summary> Returns the estimated error of latitude and longitude measurements as a measurable distance. </summary> </member><member name="P:StormSource.Gps.Receiver.HorizontalDilutionOfPrecision"> <summary> Returns the current confidence level in latitude and longitude measurements. </summary> </member><member name="P:StormSource.Gps.Receiver.IsFixObtained"> <summary>Indicates if the GPS device is currently reporting the present position.</summary> </member><member name="P:StormSource.Gps.Receiver.IsPositionObtained"> <summary> Indicates if the GPS device is reporting the current (or last known) position. </summary> </member><member name="P:StormSource.Gps.Receiver.IsWaitingForData"> <summary>Indicates if the receiver has not yet received data from the device.</summary> </member><member name="P:StormSource.Gps.Receiver.IsWaitingForFix"> <summary>Indicates if the receiver has not yet obtained a fix.</summary> </member><member name="P:StormSource.Gps.Receiver.IsWaitingForPosition"> <summary>Indicates if the receiver has received any positional information.</summary> </member><member name="P:StormSource.Gps.Receiver.IsWaitingForWaypoints"> <summary> Garmin® devices only. Indicates if the receiver is waiting for waypoint information to be received. </summary> </member><member name="P:StormSource.Gps.Receiver.MagneticVariation"> <summary>Returns the difference in degrees between True North and Magnetic North.</summary> </member><member name="P:StormSource.Gps.Receiver.Position"> <summary>Returns the current position on Earth's surface.</summary> <remarks> <para>Perhaps the most frequently-used property in this library, the <strong>Position</strong> property returns the current or last-known position obtained from the GPS device. If the receiver does not have a position to report, degree values of zero are returned for both latitude and longitude. when this property changes, the PositionChanged event is raised. The PositionReceived event works similarly, but reports the position <em>even if it has not actually changed</em> (which is useful for position-averaging techniques). This property is updated automatically as new information is received from the GPS device.</para> <para> <para><img src="BestPractice.jpg"/></para><para><strong>Use the IsFixObtained property to determine the measurement's validity.</strong></para> <para>If the <see cref="P:StormSource.Gps.Receiver.IsFixObtained">IsFixObtained</see> property is <strong>True</strong>, this property represents the current location. On the other hand, a value of <strong>False</strong> suggests that the <strong>Position</strong> is the <em>last-known</em> position obtained during an earlier fix.</para> <para><img src="BestPractice.jpg"/></para><para><strong>Do not assume that positional reports are accurate. Use the DilutionOfPrecision properties to determine whether to use or discard positional measurements.</strong></para> <para>Any application which makes recommendations to the user based on the current position must constantly poll <see cref="T:StormSource.Gps.DilutionOfPrecision"> dilution of precision</see> (or DOP) information. Applications which ignore DOP values may make incorrect suggestions.</para> </para> </remarks> <value>A <strong>Position</strong> object representing the current location.</value> </member><member name="P:StormSource.Gps.Receiver.UtmPosition"> <summary>Returns the current location expressed as a UTM coordinate.</summary> <remarks> <para>This property behaves the same as the <see cref="P:StormSource.Gps.Receiver.Position">Position</see> property, with the exception that the position is converted into a UTM coordinate. When this property changes, the PositionChanged event is raised. The PositionReceived event works similarly, but reports the position <em>even if it has not actually changed</em> (which is useful for position-averaging techniques). This property is updated automatically as new information is received from the GPS device.</para> <para> <para><img src="BestPractice.jpg"/></para><para><strong>Use the IsFixObtained property to determine the measurement's validity.</strong></para> <para>If the <see cref="P:StormSource.Gps.Receiver.IsFixObtained">IsFixObtained</see> property is <strong>True</strong>, this property represents the current location. On the other hand, a value of <strong>False</strong> suggests that the <strong>Position</strong> is the <em>last-known</em> position obtained during an earlier fix.</para> <para><img src="BestPractice.jpg"/></para><para><strong>Do not assume that positional reports are accurate. Use the DilutionOfPrecision properties to determine whether to use or discard positional measurements.</strong></para> <para>Any application which makes recommendations to the user based on the current position must constantly poll <see cref="T:StormSource.Gps.DilutionOfPrecision"> dilution of precision</see> (or DOP) information. Applications which ignore DOP values may make incorrect suggestions.</para> </para> </remarks> <value>A <strong>UtmPosition</strong> object representing the current location.</value> </member><member name="P:StormSource.Gps.Receiver.MeanDilutionOfPrecision"> <summary> Returns the overall confidence level in latitude, longitude and altitude measurements. </summary> </member><member name="P:StormSource.Gps.Receiver.PositionError"> <summary>Returns the estimated amount of error in the current position.</summary> </member><member name="P:StormSource.Gps.Receiver.Satellites"> <summary>Returns information about detectable GPS satellites in space.</summary> <remarks> This collection is populated with any <see cref="P:StormSource.Gps.SatelliteCollection.ActiveCount">active</see> <strong>Satellite</strong> objects and will change as new satellites become active and other satellites move below the horizon (GPS satellites are not geostationary). This collection is updated automatically as new information is received from the GPS device. </remarks> <value> A <see cref="T:StormSource.Gps.SatelliteCollection">SatelliteCollection</see> object containing information about any active GPS satellite. </value> </member><member name="P:StormSource.Gps.Receiver.Speed"> <summary>Returns the current rate of travel.</summary> <remarks> <para>The GPS device calculates your speed internally by figuring out the amount of time which has passed between distance measurements. As the <see cref="T:StormSource.Gps.DilutionOfPrecision">dilution of precision</see> decreases, this property becomes more accurate. When this property changes, the <see cref="E:StormSource.Gps.Receiver.SpeedChanged(System.Object,StormSource.Gps.SpeedEventArgs)">SpeedChanged</see> event is raised. This property is updated automatically as new information is received from the GPS device.</para> <para><img src="BestPractice.jpg"/></para><para><strong>Always use distance conversion methods to make the speed explicit.</strong></para> <para>No assumption should be made that this property will always return the current speed in a particular unit (MPH, KPH, etc.). Use a conversion method such as <see cref="M:StormSource.Gps.Speed.ToKilometersPerHour">ToKilometersPerHour</see> or <see cref="M:StormSource.Gps.Speed.ToStatuteMilesPerHour">ToStatuteMilesPerHour</see> to make the speed unit explicit in your code. Failure to explicitly state speed units can lead to mathematical errors.</para> </remarks> </member><member name="M:StormSource.Gps.Receiver.Start"> <summary>Begins listening for data from the GPS device.</summary> </member><member name="M:StormSource.Gps.Receiver.Stop"> <summary>Halts all communications with the GPS device.</summary> </member><member name="P:StormSource.Gps.Receiver.UtcDateTime"> <summary> Returns the current date and time as calculated by GPS satellites (not the local computer). </summary> <value> A <strong>DateTime</strong> object containing the date & time (in UTC) reported by the GPS device. </value> <remarks> <para>This property returns the date and time reported by the GPS device in UTC format (i.e. not adjusted for time zone). Since the GPS device uses GPS satellites to determine the time -- and not the computer's internal clock -- this property can be used to correct a computer's system clock.</para> <para><img src="BestPractice.jpg"/></para><para><strong>Use the UtcDateTimeChanged event instead of polling the UtcDateTime property for time-sensitive operations.</strong></para> <para>Some GPS devices will cease to report an updated time as soon as a fix is obtained. As a result, an application could erroneously read an old date/time value if it uses the <strong>UtcDateTime</strong> property instead of the <see cref="E:StormSource.Gps.Receiver.UtcDateTimeChanged(System.Object,StormSource.Gps.DateTimeEventArgs)">UtcDateTimeChanged</see> event. Using the event ensures that time-sensitive operations avoid errors.</para> <para><img src="BestPractice.jpg"/></para><para><strong>Always convert date/time measurements to the local time zone before presenting them to the user interface.</strong></para> <para>Use the <strong>ToLocalTime</strong> method to explicitly convert the time to the user's local time zone, unless your application specifically requires times expressed in UTC. Failure to use this method can cause confusion for users since the time will appear incorrect.</para> </remarks> </member><member name="P:StormSource.Gps.Receiver.VerticalDilutionOfPrecision"> <summary>Returns the confidence level in altitude measurements.</summary> </member><member name="P:StormSource.Gps.Receiver.VerticalPositionError"> <summary> Returns the estimated error of latitude and longitude measurements as a measurable distance. </summary> </member><member name="P:StormSource.Gps.Receiver.Waypoints"> <summary> Garmin® devices only. Returns information stored on the GPS device about significant locations. </summary> </member><member name="M:StormSource.Gps.Receiver.WaitForData(System.Int32)"> <overloads> Blocks until some recognizable data has been received (or a timeout occurs). </overloads> </member><member name="M:StormSource.Gps.Receiver.WaitForFix(System.Int32)"> <overloads>Blocks until a fix has been obtained (or a timeout occurs).</overloads> </member><member name="M:StormSource.Gps.Receiver.WaitForPosition"> <overloads> Blocks until the current or last-known position is received, or a timeout occurs. </overloads> </member><member name="M:StormSource.Gps.Receiver.WaitForPosition(System.Int32)"> <overloads> Blocks until the current or last-known position is received, or a timeout occurs after the specified maximum wait time. </overloads> </member><member name="M:StormSource.Gps.Receiver.Dispose"> <summary>Releases unmanaged resources used during GPS device communications.</summary> </member><member name="T:StormSource.Gps.Receiver"> <summary> The root-level class which provides the majority of GPS features and access to information from a GPS device. </summary> <remarks> <para>This class is the workhorse of the GPS.NET framework. This class is responsible for interpreting all information as it is received from the GPS device and raising all necessary events to provide the developer with maximum notification. At the center of this class are the <see cref="P:StormSource.Gps.Receiver.Position">Position</see>, <see cref="P:StormSource.Gps.Receiver.UtmPosition">UtmPosition</see>, <see cref="P:StormSource.Gps.Receiver.Altitude">Altitude</see>, <see cref="P:StormSource.Gps.Receiver.Bearing">Bearing</see>, and <see cref="P:StormSource.Gps.Receiver.Speed">Speed</see> properties which identify the current location of the GPS device on Earth. Several events are also provided for each property which can be changed by the device, including <see cref="E:StormSource.Gps.Receiver.PositionChanged(System.Object,StormSource.Gps.PositionEventArgs)">PositionChanged</see>, <see cref="E:StormSource.Gps.Receiver.UtmPositionChanged(System.Object,StormSource.Gps.UtmPositionEventArgs)">UtmPositionChanged</see>, <see cref="E:StormSource.Gps.Receiver.PositionReceived(System.Object,StormSource.Gps.PositionEventArgs)">PositionReceived</see>, <see cref="E:StormSource.Gps.Receiver.AltitudeChanged(System.Object,StormSource.Gps.DistanceEventArgs)">AltitudeChanged</see>, <see cref="E:StormSource.Gps.Receiver.BearingChanged(System.Object,StormSource.Gps.AzimuthEventArgs)">BearingChanged</see> and <see cref="E:StormSource.Gps.Receiver.SpeedChanged(System.Object,StormSource.Gps.SpeedEventArgs)">SpeedChanged</see>, among others. Information about accuracy regarding the current location is stored in the <see cref="P:StormSource.Gps.Receiver.MeanDilutionOfPrecision">MeanDilutionOfPrecision</see>, <see cref="P:StormSource.Gps.Receiver.HorizontalDilutionOfPrecision">HorizontalDilutionOfPrecision</see>, <see cref="P:StormSource.Gps.Receiver.VerticalDilutionOfPrecision">VerticalDilutionOfPrecision</see> properties, which is crucial knowledge for developers writing application which make suggestions to the user based on the current location, or for survey applications where readings are ignored until the highest accuracy is available.</para> <para></para> <para><strong>Configuring the Serial Port</strong></para> <para>Once the receiver is configured to a specific <see cref="P:StormSource.Gps.Receiver.ComPort">COM port</see> and <see cref="P:StormSource.Gps.Receiver.BaudRate">baud rate</see> (along with other <see cref="P:StormSource.Gps.Receiver.Device">device</see> settings), communication with the GPS device is controlled via the <see cref="M:StormSource.Gps.Receiver.Start">Start</see> and <see cref="M:StormSource.Gps.Receiver.Stop">Stop</see> methods, or via the <see cref="P:StormSource.Gps.Receiver.Enabled"> Enabled</see> property.</para> <para></para> <para><strong>Information About Detected GPS Satellites</strong></para> <para>If the GPS device has detected DGPS or WAAS correction information from ground stations in addition to GPS satellites, information about correct can be found in the <see cref="P:StormSource.Gps.Receiver.DifferentialGps">DifferentialGps</see> and <see cref="P:StormSource.Gps.Receiver.FixMethod">FixMethod</see> properties. Information on the physical location and signal strength of satellite radio signals is found in the <see cref="P:StormSource.Gps.Receiver.Satellites">Satellites</see> property.</para> <para></para> <para><strong>Recording and Parsing Raw GPS Data</strong></para> <para>Access to raw data for the purposes of logging can be made by capturing the <see cref="E:StormSource.Gps.Receiver.SentenceReceived(System.Object,StormSource.Gps.SentenceEventArgs)">SentenceReceived</see> and <see cref="E:StormSource.Gps.Receiver.UnrecognizedSentenceReceived(System.Object,StormSource.Gps.SentenceEventArgs)">UnrecognizedSentenceReceived</see> events. Processing of previously-saved raw GPS data can be performed via the <see cref="M:StormSource.Gps.Receiver.Parse(System.String)">Parse</see> method, which supports any NMEA-0183, Garmin® text or Garmin® binary protocol data.</para> <para></para> <para><strong>Error Handling and Notification</strong></para> <para>Exception handling in the GPS.NET framework is performed via the <see cref="T:StormSource.Gps.GpsException">GpsException</see> class, the <see cref="E:StormSource.Gps.Receiver.ErrorOccurred(System.Object,StormSource.Gps.ErrorEventArgs)">ErrorOccurred</see> event for unexpected errors, and the <see cref="E:StormSource.Gps.Receiver.ParsingErrorOccurred(System.Object,StormSource.Gps.ParsingErrorEventArgs)">ParsingErrorOccurred</see> event for recoverable parsing errors due to incorrect or corrupt raw data.</para> <para></para> <para><strong>Special Classes for Garmin® Devices</strong></para> <para>For Garmin® devices, classes are available which allow developers to retrieve and store information stored on the device, such as <see cref="P:StormSource.Gps.Receiver.Waypoints">waypoints</see>. </para> <para></para> <para><img src="BestPractice.jpg"/></para><para><strong>Use events of the GPS.NET Framework to drive your GPS applications</strong></para> <para>GPS programming is largely event-driven because of the unpredictable order in which updated GPS information is received from the device. While it is possible to query GPS information in a scripting-like fashion using <see cref="M:StormSource.Gps.Receiver.WaitForPosition"> WaitForPosition</see> and <see cref="M:StormSource.Gps.Receiver.WaitForFix">WaitForFix</see>, using events is the most efficient and fastest way to process updated information.</para> <para></para> <para><strong>Licensing and Redistribution of the GPS.NET Framework</strong></para> <para>This software will behave as through it were a 30-day fully-functional trial unless a valid serial number has been set via the <see cref="M:StormSource.Gps.Receiver.SetLicenseKey(System.String)"> SetLicenseKey</see> method. Once set, the "nag" window will no longer appear. To deploy GPS.NET to another computer as part of your application's installation, you need only include <strong>dll</strong>.</para> <para></para> <para><strong>Licensing Changes for Developers Using Previous Versions</strong></para> <para>Previous versions required developers to jump through a few hoops to successfully install GPS.NET on client machines. This included the addition of a "<strong>licenses.lic</strong>" embedded resource, creation of a run-time "<strong>licensing.licx</strong>" resource, compilation of licenses using the .NET License Compiler, and a second DLL (Xheo.Licensing.dll) before it would work on deployed machines. In version 1.4, this complexity has all been discarded -- you may now remove all licensing files as well as the Xheo DLL from your installation project and use the new licensing method mentioned above.</para> <para></para> <para><strong>Obtaining Support, Making Feature Requests, Known Issues and Beta Testing</strong></para> <para>StormSource Software prides itself on providing quick and high-quality technical support. If you encounter an error, have a comment, or need assistance with understanding the GPS.NET Framework, please visit us online at: <see href="http://www.gpsdotnet.com/support">http://www.gpsdotnet.com/support</see> or send an e-mail to <see href="mailto:support@gpsdotnet.com">support@gpsdotnet.com</see>. We typically respond to support requests within six hours. Information about known issues and workarounds can be found in the Knowledge Base here: <see href="http://www.gpsdotnet.com/kb">http://www.gpsdotnet.com/kb</see>. Developers who want to purchase GPS.NET can find information about pricing and special discounts here: <see href="http://www.gpsdotnet.com/purchase">http://www.gpsdotnet.com/purchase</see>. If you would like to be a part of our beta testing program, please write us at <see href="mailto:info@gpsdotnet.com?Subject=Beta Testing Program Request">info@gpsdotnet.com</see>. Beta testers who actively submit feedback will receive a discount if they decide to purchase!</para> </remarks> </member><member name="E:StormSource.Gps.Satellite.PseudoRandomCodeChanged(System.Object,StormSource.Gps.SatelliteEventArgs)"> <summary> Occurs when the Pseudo-Random Code of a satellite object becomes known. </summary> <remarks> <para>This event is rarely raised more than once because a satellite's PseudoRandomCode does not actually change. However, a GPS device may suddenly report satellite information in a different order. This can cause this event to be raised again to help developers keep information straight if they are referring to satellites via their <see cref="P:StormSource.Gps.Satellite.Index">Index</see> property.</para> </remarks> <seealso cref="P:StormSource.Gps.Satellite.PseudoRandomCode">PseudoRandomCode Property</seealso> </member><member name="E:StormSource.Gps.Satellite.AzimuthChanged(System.Object,StormSource.Gps.SatelliteEventArgs)"> <remarks> This event is Occurs whenever the <see cref="P:StormSource.Gps.Satellite.Azimuth">Azimuth</see> property has changed. This event is useful for detecting changes in a satellite's position. Over longer periods of time, the azimuth of a satellite slowly changes as it moves across the sky because GPS satellites are constantly in motion. Each satellite is viewable in the sky for about four hours before it disappears below the horizon and other satellites appear. </remarks> <summary>Occurs when the angle around the horizon of a satellite has changed.</summary> <seealso cref="P:StormSource.Gps.Satellite.Azimuth">Azimuth Property</seealso> </member><member name="E:StormSource.Gps.Satellite.ElevationChanged(System.Object,StormSource.Gps.SatelliteEventArgs)"> <remarks> <para>This event is Occurs whenever the <see cref="P:StormSource.Gps.Satellite.Elevation">Elevation</see> property has changed. This event is useful for detecting changes in one satellite's position. Over longer periods of time, the elevation of a satellite slowly changes as it moves across the sky. Each satellite is viewable in the sky for about four hours before it disappears below the horizon and other satellites appear.</para> </remarks> <summary>Occurs when a satellites angle up from the horizon has changed.</summary> </member><member name="E:StormSource.Gps.Satellite.SignalToNoiseRatioChanged(System.Object,StormSource.Gps.SatelliteEventArgs)"> <summary>Occurs when a satellite's radio becomes more or less obscured.</summary> <remarks> Satellites send radio signals out at a constant strength, but the signals can become obscured or completely blocked by objects on Earth such as buildings, trees and walls. When the level of obscurity changes, the <see cref="P:StormSource.Gps.Satellite.SignalToNoiseRatio">SignalToNoiseRatio</see> property is updated and this event is raised. </remarks> </member><member name="E:StormSource.Gps.Satellite.FixObtained(System.Object,StormSource.Gps.SatelliteEventArgs)"> <summary> Occurs when the satellite's signal is strong enough to involve it in the current fix. </summary> <remarks> <para>When a fix is obtained, it means that the satellite signal strength of at least three satellites is strong enough to calculate the current position. After a fix is obtained, additional satellites may join the fix as well. Since satellites are constantly in motion within their orbits, and GPS devices are also usually in motion, it is typical for satellites to join and leave a fix frequently.</para> <para><img src="BestPractice.jpg"/></para><para><strong>Avoid using the FixObtained event of the Satellite class to signal that a fix has been obtained.</strong></para> <para>The FixObtained event of the Satellite class is intended to indicate when <em>additional</em> satellites have joined a fix, not when the entire fix has been obtained. This is because the FixObtained event is raised more than once when the fix is obtained. The cleanest approach would be to use the FixObtained event of the SatelliteCollection or Receiver classes.</para> </remarks> </member><member name="E:StormSource.Gps.Satellite.FixLost(System.Object,StormSource.Gps.SatelliteEventArgs)"> <remarks> <para>This event is used to indicate that a satellite signal which is currently part of a fix, has just been lost. This typically occurs when a satellite signal becomes obscured. During the lifetime of a fix, and since satellites are constantly in motion within their orbits, it is typical for satellites to join and leave a fix.</para> <para>This event does not necessarily indicate that the entire fix was lost. For example, if four satellites are involved in a fix, and one is lost, this event will be raised, but there are still enough satellites remaining to maintain the fix.</para> <para><img src="BestPractice.jpg"/></para><para><strong>Avoid using the FixLost event of the Satellite class to signal that a fix has been lost.</strong></para> <para>The FixLost event of the Satellite class is intended to indicate when a single satellite has dropped out of the current fix, not when the entire fix has been lost. Use the FixLost event of the SatelliteCollection or Receiver classes to signal that the entire fix has been lost.</para> </remarks> </member><member name="T:StormSource.Gps.Satellite"> <summary>Represents information about a GPS satellite.</summary> <remarks> <para>GPS devices are able to isolate information about GPS satellites in orbit. Each satellite's <see cref="P:StormSource.Gps.Satellite.PseudoRandomCode">unique identifier</see>, <see cref="P:StormSource.Gps.Satellite.SignalToNoiseRatio">radio signal strength</see>, <see cref="P:StormSource.Gps.Satellite.Azimuth">azimuth</see> and <see cref="P:StormSource.Gps.Satellite.Elevation">elevation</see> are available once its radio signal is detected.</para> <para>Properties in this class are updated automatically as new information is received from the GPS device.</para> <para><img src="Satellite.jpg"/></para> </remarks> <seealso cref="T:StormSource.Gps.SatelliteCollection">SatelliteCollection Class</seealso> </member><member name="F:StormSource.Gps.Longitude.PrimeMeridian"> <summary>Represents a longitude of zero degrees, also known as the Prime Meridian.</summary> <remarks> <para>The Prime Meridian, located at 0°E (and 0°W), also known as the "Greenwich" Meridian was chosen as the Prime Meridian of the World in 1884. Forty-one delegates from 25 nations met in Washington, D.C. for the International Meridian Conference. By the end of the conference, Greenwich had won the prize of Longitude 0º by a vote of 22 to 1 against (San Domingo), with 2 abstentions (France and Brazil).</para> <para>The Prime Meridian is also significant in that it marks the location from which all time zones are measured. Times displayed as "Zulu," "UTC," or "GMT" are all talking about times adjusted to the Greenwich time zone.</para> <para>Before the Prime Meridian, almost every town in the world kept its own local time. There were no national or international conventions which set how time should be measured, or when the day would begin and end, or even what length an hour might be!</para> </remarks> </member><member name="F:StormSource.Gps.Longitude.InternationalDateLine"> <summary>Represents a longitude 180 degrees.</summary> <remarks> This value of 180°W (also 180°E) marks the longitude located on the opposite side of the Earth from the Prime Meridian. It runs approximately through the <a href="http://greenwichmeridian.com/date-line.htm">International Date Line</a> (between Alaska and Russia). </remarks> </member><member name="F:StormSource.Gps.Longitude.Minimum"> <summary>Represents the minimum possible longitude of zero degrees.</summary> <remarks> This member is provided for completeness and is equivalent to the <see cref="F:StormSource.Gps.Longitude.PrimeMeridian">PrimeMeridian</see> shared field. </remarks> </member><member name="F:StormSource.Gps.Longitude.Maximum"> <summary>Represents the maximum possible longitude of 180 degrees.</summary> <remarks> This value of 180°W (also 180°E) marks the longitude located on the opposite side of the Earth from the Prime Meridian. It runs approximately through the <a href="http://greenwichmeridian.com/date-line.htm">International Date Line</a> (between Alaska and Russia). </remarks> </member><member name="M:StormSource.Gps.Longitude.#ctor"> <summary>Creates a new instance.</summary> </member><member name="M:StormSource.Gps.Longitude.#ctor(StormSource.Gps.Angle)"> <summary> Creates a new instance by upgrading the specified <strong>Angle</strong> object. </summary> <param name="angle">An <strong>Angle</strong> object to upgrade.</param> </member><member name="M:StormSource.Gps.Longitude.#ctor(System.Double)"> <summary>Creates a new instance with the specified decimal degrees.</summary> <remarks> This constructor will automatically assign a value to the <see cref="P:StormSource.Gps.Longitude.Hemisphere">Hemisphere</see> property depending on the value. A value less than zero is considered to be in the western hemisphere. </remarks> <param name="decimalDegrees"> A <strong>Double</strong> to store in the <strong>DecimalDegrees</strong> property. </param> </member><member name="M:StormSource.Gps.Longitude.#ctor(System.Double,StormSource.Gps.LongitudeHemisphere)"> <summary>Creates a new instance using the specified decimal degrees and hemisphere.</summary> <remarks> <para>This constructor is typically used to create a longitude when decimal degrees are always expressed as a positive number. Since the hemisphere property is set <em>after</em> the DecimalDegrees property is set, the DecimalDegrees is adjusted automatically to be positive for the eastern hemisphere and negative for the western hemisphere.</para> <para>If the parameters conflict with each other, the <strong>Hemisphere</strong> parameter takes precedence. Therefore, a value of "-19°E" will become "19°E" (without the negative sign) with no exception being thrown.</para> </remarks> <param name="decimalDegrees"> A <strong>Double</strong> specifying a value for the <strong>DecimalDegrees</strong> property. </param> <param name="hemisphere">A value from the <strong>LatitudeHemisphere</strong> enumeration.</param> </member><member name="M:StormSource.Gps.Longitude.#ctor(System.Int32,System.Int32,System.Double)"> <summary>Creates a new instance with the specified hours, minutes and seconds.</summary> <param name="hours">An <strong>Integer</strong> specifying the number of hours.</param> <param name="minutes">An <strong>Integer</strong> specifying the number of minutes.</param> <param name="seconds">An <strong>Double</strong> specifying the number of seconds.</param> </member><member name="M:StormSource.Gps.Longitude.#ctor(System.Int32,System.Int32,System.Double,StormSource.Gps.LongitudeHemisphere)"> <summary> Creates a new longitude with the specified hours, minutes, seconds, and hemisphere. </summary> <param name="hours">An <strong>Integer</strong> specifying the number of hours.</param> <param name="minutes">An <strong>Integer</strong> specifying the number of minutes.</param> </member><member name="M:StormSource.Gps.Longitude.#ctor(System.Int32,System.Double)"> <summary>Creates a new instance with the specified hours and decimal minutes.</summary> <param name="hours">An <strong>Integer</strong> specifying the number of hours.</param> </member><member name="M:StormSource.Gps.Longitude.#ctor(System.Int32,System.Double,StormSource.Gps.LongitudeHemisphere)"> <summary> Creates a new instance with the specified hours, decimal minutes, and hemisphere. </summary> <param name="hours">An <strong>Integer</strong> specifying the number of hours.</param> </member><member name="M:StormSource.Gps.Longitude.#ctor(System.String)"> <summary>Creates a new instance using the specified string-based measurement.</summary> <remarks> <para>A <strong>String</strong> in any of the following formats (or variation depending on the local culture):</para> <para> <table cellspacing="0" cols="4" cellpadding="2" width="100%"> <tbody> <tr> <td>hh</td> <td>hh.h</td> <td>hh mm</td> <td>hh mm.mm</td> </tr> <tr> <td>hh mm ss</td> <td>hh mm ss.sss</td> <td>hhi</td> <td>hh.hi</td> </tr> <tr> <td>hh mmi</td> <td>hh mm i</td> <td>hh mm.mi</td> <td>hh mm.m i</td> </tr> <tr> <td>hh mm ssi</td> <td>hh mm ss i</td> <td>hh mm ss.si</td> <td>hh mm ss.s i</td> </tr> <tr> <td>hhhmmssi</td> <td></td> <td></td> <td></td> </tr> </tbody> </table> </para> <para>Where <strong>h</strong> represents hours, <strong>m</strong> represents minutes, <strong>s</strong> represents seconds, and <strong>i</strong> represents a one-letter hemisphere indicator of "E" or "W." Any non-numeric character between numbers is considered a delimiter. Thus, a value of <strong>12°34'56.78"</strong> or even <strong>12A34B56.78C</strong> is treated the same as <strong>12 34 56.78</strong>.</para> </remarks> </member><member name="M:StormSource.Gps.Longitude.Equals(StormSource.Gps.Angle)"> <summary>Compares the current instance with the specified angle.</summary> <remarks> This comparison method allows a latitude to be compared with an Angle object or any of its derivatives, such as a <strong>Latitude</strong> object. </remarks> </member><member name="M:StormSource.Gps.Longitude.Equals(StormSource.Gps.Longitude)"> <summary> Compares the current instance with the specified <strong>Longitude</strong> object. </summary> </member><member name="M:StormSource.Gps.Longitude.Equals(StormSource.Gps.Longitude,System.Int32)"> <summary> Compares the current instance with the specified Longitude object, using the specified digits of precision. </summary> </member><member name="M:StormSource.Gps.Longitude.Equals(System.Double)"> <summary>Compares the current instance with the specified decimal degrees.</summary> </member><member name="M:StormSource.Gps.Longitude.Equals(System.Double,System.Int32)"> <summary> Compares the current instance with the specified decimal degrees, using the specified digits of precision. </summary> <remarks> This method is typically used to compare two longitude measurements which require </remarks> <param name="value">A <strong>Double</strong> indicating the value to compare with.</param> <param name="precision">The number of digits to compare to the right of the decimal separator.</param> </member><member name="M:StormSource.Gps.Longitude.Equals(System.Object)"> <summary>Compares the current instance to another arbitrary object.</summary> <param name="value"> An <strong>Object</strong>. Typically a <strong>Double</strong> or Angle derivative. </param> </member><member name="M:StormSource.Gps.Longitude.GetHashCode"> <summary>Returns a number which uniquely identifies the current instance.</summary> <remarks> This method returns the same value as <strong>DecimalDegrees.GetHashcode()</strong>. </remarks> </member><member name="M:StormSource.Gps.Longitude.Normalize(System.Int32)"> <summary>Adjusts a longitude to lie within zero and 180 degrees.</summary> <remarks> <para>This function is used to ensure that an angular measurement is within the allowed bounds of 0° and 180°. If a value of 360° or 720° is passed, a value of 0° is returned since traveling around the Earth 360° or 720° brings you to the same place you started.</para> <para>NOTE: Normalization is performed automatically when assigning a new value to the <see cref="P:StormSource.Gps.Longitude.DecimalDegrees">DecimalDegrees</see> or <see cref="P:StormSource.Gps.Longitude.Hours">Hours</see> property.</para> </remarks> <param name="value">An <strong>Integer</strong> specifying a value to normalize.</param> </member><member name="M:StormSource.Gps.Longitude.Normalize(System.Double)"> <remarks> <para>This function is used to ensure that an angular measurement is within the allowed bounds of 0° and 180°. If a value of 360° or 720° is passed, a value of 0° is returned since traveling around the Earth 360° or 720° brings you to the same place you started.</para> <para>NOTE: Normalization is performed automatically when assigning a new value to the <see cref="P:StormSource.Gps.Longitude.DecimalDegrees">DecimalDegrees</see> or <see cref="P:StormSource.Gps.Longitude.Hours">Hours</see> property.</para> </remarks> </member><member name="M:StormSource.Gps.Longitude.Normalize(StormSource.Gps.Longitude)"> <remarks> <para>This function is used to ensure that an angular measurement is within the allowed bounds of 0° and 180°. If a value of 360° or 720° is passed, a value of 0° is returned since traveling around the Earth 360° or 720° brings you to the same place you started.</para> <para>NOTE: Normalization is performed automatically when assigning a new value to the <see cref="P:StormSource.Gps.Longitude.DecimalDegrees">DecimalDegrees</see> or <see cref="P:StormSource.Gps.Longitude.Hours">Hours</see> property.</para> </remarks> <returns>A <strong>Longitude</strong> containing the normalized value.</returns> </member><member name="M:StormSource.Gps.Longitude.Clone"> <summary>Creates a mutable copy of the current instance.</summary> <remarks> The cloned object shares the same value for the <see cref="P:StormSource.Gps.Longitude.DecimalDegrees">DecimalDegrees</see> property. The <see cref="P:StormSource.Gps.Longitude.IsImmutable">immutable</see> setting is not copied, thus allowing this method to make a writable (mutable) copy of a read-only shared field. </remarks> <returns>A <strong>Latitude</strong> equivalent to the current instance.</returns> </member><member name="P:StormSource.Gps.Longitude.CurrentLongitude"> <summary>Returns the current longitude reported by the GPS device.</summary> <remarks> This property is equivalent to polling the Longitude property of the Position property of the Receiver class. </remarks> <value> A <strong>Longitude</strong> containing the longitude of the current position. </value> </member><member name="P:StormSource.Gps.Longitude.DecimalDegrees"> <summary>Represents hours, minutes and/or seconds as a single numeric value.</summary> <remarks> This property is typically used when a measurement does not need to be specified as individual hours, minutes and seconds. Changing this property causes the <see cref="E:StormSource.Gps.Angle.DecimalDegreesChanged(System.Object,StormSource.Gps.AngleEventArgs)"> DecimalDegreesChanged</see> event to be raised, and the <see cref="P:StormSource.Gps.Longitude.Hours">Hours</see>, <see cref="P:StormSource.Gps.Angle.Minutes">Minutes</see> Hemisphere, and <see cref="P:StormSource.Gps.Angle.Seconds">Seconds</see> properties are automatically recalculated. </remarks> <value>A <strong>Double</strong> value.</value> </member><member name="P:StormSource.Gps.Longitude.Hours"> <value>An <strong>Integer</strong> value.</value> <summary>Returns the integer hours (degrees) portion of an angular measurement.</summary> <exception cref="T:StormSource.Gps.ImmutableObjectException" caption="ImmutableObjectException">Thrown if the object was created with the IsImmutable flag set. This is typically thrown when attempting to modify a shared member.</exception> <remarks> <para>When this value changes, the HoursChanged event is raised, and the DecimalDegrees property is recalculated. If this property is assigned to a value outside the allowed minimum and maximum, the value will automatically be <see cref="M:StormSource.Gps.Longitude.Normalize(System.Int32)">normalized</see>.</para> </remarks> </member><member name="P:StormSource.Gps.Longitude.IsImmutable"> <summary>Indicates if the current instance is read-only.</summary> <returns>An object is considered immutable if it's value(s) cannot be changed. This is set to True for any shared fields in this class.</returns> <remarks> An object is considered "immutable" if it's properties cannot be modified in any way. </remarks> </member><member name="P:StormSource.Gps.Longitude.Hemisphere"> <summary>Indicates if the longitude is east or west of the Prime Meridian.</summary> <remarks> <para>When this property changes, the DecimalDegrees property is adjusted: if the hemisphere is <strong>West</strong>, a negative sign is placed in front of the DecimalDegrees value, and vice versa.</para> </remarks> </member><member name="M:StormSource.Gps.Longitude.Parse(System.String)"> <summary>Converts a string-based latitude into a Latitude object.</summary> <param name="value"> <para>A <strong>String</strong> in any of the following formats (or variation depending on the local culture):</para> <para> <table cellspacing="0" cols="4" cellpadding="2" width="100%"> <tbody> <tr> <td>hh</td> <td>hh.h</td> <td>hh mm</td> <td>hh mm.mm</td> </tr> <tr> <td>hh mm ss</td> <td>hh mm ss.sss</td> <td>hhi</td> <td>hh.hi</td> </tr> <tr> <td>hh mmi</td> <td>hh mm i</td> <td>hh mm.mi</td> <td>hh mm.m i</td> </tr> <tr> <td>hh mm ssi</td> <td>hh mm ss i</td> <td>hh mm ss.si</td> <td>hh mm ss.s i</td> </tr> <tr> <td>hhhmmssi</td> <td></td> <td></td> <td></td> </tr> </tbody> </table> </para> <para>Where <strong>h</strong> represents hours, <strong>m</strong> represents minutes, <strong>s</strong> represents seconds, and <strong>i</strong> represents a one-letter hemisphere indicator of "E" or "W." Any non-numeric character between numbers is considered a delimiter. Thus, a value of <strong>12°34'56.78"</strong> or even <strong>12A34B56.78C</strong> is treated the same as <strong>12 34 56.78</strong>.</para> </param> <remarks> <para>This powerful method is typically used to process data from a data store or a value input by the user. This function can accept any format which can be output by the <see cref="M:StormSource.Gps.Angle.ToString">ToString</see> method.</para> </remarks> <returns>A <strong>Latitude</strong> object equivalent to the specified string.</returns> </member><member name="M:StormSource.Gps.Longitude.ToString"> <summary>Outputs the current instance in the form of a string.</summary> <remarks> This method will output the current instance using a default format of <strong>HHH°MM'SS.SS"I</strong> (or a variation depending on the local culture), where <strong>H</strong> represents Hours, <strong>M</strong> represents minutes, <strong>S</strong> represents seconds, and <strong>I</strong> is a one-letter hemisphere indicator. </remarks> </member><member name="M:StormSource.Gps.Longitude.ToString(System.String)"> <remarks> <para>This powerful method returns the current angular measurement in a specific format. If no value for the format is specified, a format of <strong>HHH°MM'SS.SS"I</strong> (adjusted to the current culture) will be used. The resulting <strong>String</strong> can be converted back into an <strong>Longitude</strong> via the <see href="Angle.Parse">Parse</see> method so long as a delimiter separates each individual value.</para> </remarks> <param name="format"> <para>A combination of symbols, spaces, and any of the following case-insensitive letters: <strong>D</strong> or <strong>H</strong> for hours, <strong>M</strong> for minutes, <strong>S</strong> for seconds, and <strong>I</strong> to indicate the hemisphere. Here are some examples:</para> <para> <table cellspacing="0" cols="3" cellpadding="2" width="100%"> <tbody> <tr> <td>HH°MM'SS.SS"</td> <td>HHH.H°</td> <td>HH MM.MM</td> <td>HHHMMSS</td> </tr> <tr> <td>HH°MM'SS.SS"I</td> <td>HHH.H°I</td> <td>HH MM.MMI</td> <td>HHHMMSSI</td> </tr> </tbody> </table> </para> </param> <summary>Outputs the current instance as a string using the specified format.</summary> <returns>A <strong>String</strong> matching the specified format.</returns> </member><member name="M:StormSource.Gps.Longitude.ToString(System.String,System.IFormatProvider)"> <summary> Outputs the current instance as a string using the specified format and culture. </summary> <param name="format"> <para>A combination of symbols, spaces, and any of the following case-insensitive letters: <strong>D</strong> or <strong>H</strong> for hours, <strong>M</strong> for minutes, <strong>S</strong> for seconds, and <strong>I</strong> to indicate the hemisphere. Here are some examples:</para> <para> <table cellspacing="0" cols="3" cellpadding="2" width="100%"> <tbody> <tr> <td>HH°MM'SS.SS"</td> <td>HHH.H°</td> <td>HH MM.MM</td> <td>HHHMMSS</td> </tr> <tr> <td>HH°MM'SS.SS"I</td> <td>HHH.H°I</td> <td>HH MM.MMI</td> <td>HHHMMSSI</td> </tr> </tbody> </table> </para> </param> <param name="formatProvider"> An <strong>IFormatProvider</strong> object specifying a culture to apply during formatting. </param> <returns>A <strong>String</strong> matching the specified format.</returns> <remarks> <para>This powerful method returns the current angular measurement in a specific format. If no value for the format is specified, a format of <strong>HHH°MM'SS.SS"I</strong> (adjusted to the current culture) will be used. The resulting <strong>String</strong> can be converted back into an <strong>Longitude</strong> via the <see href="Angle.Parse">Parse</see> method so long as a delimiter separates each individual value.</para> </remarks> </member><member name="M:StormSource.Gps.Longitude.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)"> <summary>Populates the current instance from serialized data.</summary> </member><member name="T:StormSource.Gps.Longitude"> <summary> Represents a line of constant distance east or west from the Prime Meridian. </summary> <remarks> <para>The Prime Meridian is a line which passes through the <see href="http://www.nmm.ac.uk/">Royal Observatory in Greenwich, England</see>. Longitude measurements are paired with <see href="Latitude">latitude</see> measurements to specify a specific <see href="StormSource.Gps.Position">position</see> on Earth's surface. Longitudes can range from -180° (through the eastern tip of Russia) to 180° (the same as -180°), with 0° at the Prime Meridian.</para> <para> <para>If a longitude is west of the Prime Meridian, it is considered to be in the western hemisphere and can also be expressed as a positive number with a one-letter indicator of "W" (West) or "E" (East). For example, a longitude of "-105°" can also be expressed as "105°W". A longitude east of the Prime Meridian is always positive (i.e. "105°E")</para> <para>This diagram shows lines of longitude on the Earth's surface:</para> <para><img src="Longitude.jpg"/></para> </para> </remarks> <seealso cref="T:StormSource.Gps.Latitude">Latitude C:\Source\StormSource\GPS.NET Global Positioning SDK\Version 1.4\Framework 1.1\Latitude.vb Class</seealso>C:\Source\StormSource\GPS.NET Global Positioning SDK\Version 1.4\Framework 1.1\Latitude.vb <seealso cref="T:StormSource.Gps.Position">Position Class</seealso> </member><member name="E:StormSource.Gps.DilutionOfPrecision.ValueChanged(System.Object,StormSource.Gps.DilutionOfPrecisionEventArgs)"> <summary>Occurs when the <see cref="P:StormSource.Gps.DilutionOfPrecision.Value">Value</see> property has changed.</summary> <remarks> This event is typically used to monitor changes in the confidence level of latitude and longitude, altitude, or both. </remarks> <example> This example demonstrates how to monitor for changes in precision as it relates to altitude using the ValueChanged event. <code lang="VB"> Private WithEvents MyReceiver As New Receiver() Private OldVDOPValue As Integer ' Occurs when the Value property has changed Private Sub OnVDOPChanged(ByVal sender As Object, ByVal e As DilutionOfPrecisionEventArgs) Handles MyReceiver.HorizontalDilutionOfPrecisionChanged ' Is the confidence level better or worse? If e.DilutionOfPrecision.Value < OldVDOPValue Then ' Better! Take a reading Debug.WriteLine("Altitude measurements have become less precise.") Else ' Worse. Wait for it to be better before taking a reading Debug.WriteLine("Altitude measurements have become less precise. Try to move into a more open view of the sky.") End If ' Remember this new value for the next time the event is raised OldVDOPValue = e.DilutionOfPrecision.Value End Sub </code> <code lang="C#"> Receiver MyReceiver = new Receiver(); int OldVDOPValue; // Occurs when the Value property has changed void OnVDOPChanged(Object sender, DilutionOfPrecisionEventArgs e) { // Is the confidence level better or worse? if (e.DilutionOfPrecision.Value < OldVDOPValue) { // Better! Take a reading Debug.WriteLine("Altitude measurements have become less precise."); } else { // Worse. Wait for it to be better before taking a reading Debug.WriteLine("Altitude measurements have become less precise. Try to move into a more open view of the sky."); } // Remember this new value for the next time the event is raised OldVDOPValue = e.DilutionOfPrecision.Value; } </code> </example> <seealso cref="P:StormSource.Gps.DilutionOfPrecision.Value">Value Property</seealso> <seealso cref="E:StormSource.Gps.DilutionOfPrecision.RatingChanged(System.Object,StormSource.Gps.DilutionOfPrecisionEventArgs)">RatingChanged Event</seealso> </member><member name="E:StormSource.Gps.DilutionOfPrecision.RatingChanged(System.Object,StormSource.Gps.DilutionOfPrecisionEventArgs)"> <summary>Occurs when the <see cref="P:StormSource.Gps.DilutionOfPrecision.Rating">Rating</see> property has changed.</summary> <remarks> This event is typically used to detect significant changes in precision, versus the <see cref="E:StormSource.Gps.DilutionOfPrecision.ValueChanged(System.Object,StormSource.Gps.DilutionOfPrecisionEventArgs)">ValueChanged</see> event which reports minute changes in a confidence level. Use this event as a general indicator of when it is safe or not to make business decisions based on positional measurements. </remarks> <example> This example demonstrates how to monitor for large changes in precision as it relates to the current location using the RatingChanged event. <code lang="VB"> ' Capture the events of the horizontal DOP object Private WithEvents MyDOP As DilutionOfPrecision = Receiver.HorizontalDilutionOfPrecision ' Occurs when the Rating property has changed Private Sub OnRatingChanged(ByVal sender As Object, ByVal e As DilutionOfPrecisionEventArgs) Handles MyDOP.RatingChanged ' Is the confidence level better or worse? Select Case e.DilutionOfPrecision.Rating Case DilutionOfPrecisionRating.Poor, DilutionOfPrecisionRating.Fair ' Poor precision. Could be much better Case Else ' Good to Ideal precision End Case End Sub </code> <code lang="C#"> // Capture the events of the horizontal DOP object DilutionOfPrecision MyDOP = Receiver.HorizontalDilutionOfPrecision; // Occurs when the Rating property has changed void OnRatingChanged(Object sender, DilutionOfPrecisionEventArgs e) { // Is the confidence level better or worse? switch(e.DilutionOfPrecision.Rating) { case DilutionOfPrecisionRating.Poor: // Poor precision. Could be much better break; case DilutionOfPrecisionRating.Fair: // Poor precision. Could be much better break; default: // Good to Ideal precision break; } } </code> </example> <seealso cref="P:StormSource.Gps.DilutionOfPrecision.Rating">Rating Property</seealso> <seealso cref="E:StormSource.Gps.DilutionOfPrecision.ValueChanged(System.Object,StormSource.Gps.DilutionOfPrecisionEventArgs)">ValueChanged Event</seealso> </member><member name="M:StormSource.Gps.DilutionOfPrecision.#ctor(StormSource.Gps.DilutionOfPrecisionType)"> <summary>Creates a new instance of a mean, horizontal or vertical DOP reading.</summary> <remarks> This constructor has been provided for special cases where a DOP reading must be stored outside of the GPS.NET framework. For most applications, using DilutionOfPrecision objects created automatically will be sufficient. </remarks> <param name="type"> A <see cref="T:StormSource.Gps.DilutionOfPrecisionType">DilutionOfPrecisionType</see> value indicating the kind of DOP measurement. </param> <example> This example creates a new DOP measurement using this constructor. <code lang="VB"> Dim MyDOP As New DilutionOfPrecision(DilutionOfPrecisionType.Horizontal) </code> <code lang="C#"> DilutionOfPrecision MyDOP = new DilutionOfPrecision(DilutionOfPrecisionType.Horizontal); </code> </example> <seealso cref="P:StormSource.Gps.DilutionOfPrecision.Type">Type Property</seealso> </member><member name="M:StormSource.Gps.DilutionOfPrecision.#ctor(StormSource.Gps.DilutionOfPrecisionType,System.Double)"> <summary> Creates a new instance of a mean, horizontal or vertical DOP reading with the specified value. </summary> <remarks> This constructor is typically used for special cases when a custom DOP reading must be created, such as for loading previously-saved DOP data. For most applications, creating a new <strong>DilutionOfPrecision</strong> object is not necessary. </remarks> <exception cref="T:System.ArgumentOutOfRangeException" caption="ArgumentOutOfRangeException">Dilution of precision values must be 1, 50, or any integer in between.</exception> <param name="type"> A <see cref="T:StormSource.Gps.DilutionOfPrecisionType"> DilutionOfPrecisionType</see> value indicating the kind of DOP measurement. </param> <param name="Value"> An <strong>Integer</strong> between 1 and 50 to be stored in the <see cref="P:StormSource.Gps.DilutionOfPrecision.Value"> Value</see> property. </param> <example> This example creates a new horizontal DOP measurement of ten using this constructor. <code lang="VB"> Dim MyDOP As New DilutionOfPrecision(DilutionOfPrecisionType.Horizontal, 10.0) </code> <code lang="C#"> DilutionOfPrecision MyDOP = new DilutionOfPrecision(DilutionOfPrecisionType.Horizontal, 10.0); </code> </example> <seealso cref="P:StormSource.Gps.DilutionOfPrecision.Type">Type Property</seealso> <seealso cref="P:StormSource.Gps.DilutionOfPrecision.Value">Value Property</seealso> </member><member name="P:StormSource.Gps.DilutionOfPrecision.CurrentHorizontal"> <remarks> This property is typically used to check for the confidence level in latitude and longitude measurements without requiring an instance of an object. This property is updated automatically as new information is received from the GPS device. </remarks> <value>Read only. A <strong>DilutionOfPrecision</strong> object.</value> <summary>Returns the confidence level of latitude and longitude measurements.</summary> <example> This example demonstrates how to high-precision applications enforce precision by reading the current position only if ideal HDOP is in progress. <code lang="VB"> ' Is ideal precision present right now? If DilutionOfPrecision.CurrentHorizontal.Rating = DilutionOfPrecisionRating.Ideal Then ' Yes. Output the current position Debug.WriteLine(Position.CurrentPosition.ToString) Else ' No. The current position is not accurate enough to work with End If </code> <code lang="C#"> // Is ideal precision present right now? if (DilutionOfPrecision.CurrentHorizontal.Rating == DilutionOfPrecisionRating.Ideal) { // Yes. Output the current position Debug.WriteLine(Position.CurrentPosition.ToString()); } else { // No. The current position is not accurate enough to work with } </code> </example> <seealso cref="P:StormSource.Gps.DilutionOfPrecision.CurrentVertical">CurrentVertical Property</seealso> <seealso cref="P:StormSource.Gps.DilutionOfPrecision.CurrentMean">CurrentMean Property</seealso> </member><member name="P:StormSource.Gps.DilutionOfPrecision.CurrentVertical"> <remarks> This property is typically used to check for the confidence level in altitude measurements without instantiating an object. This property is updated automatically as new information is received from the GPS device. </remarks> <value>Read only. A <strong>DilutionOfPrecision</strong> object.</value> <summary>Returns the confidence level of altitude measurements.</summary> <example> This example demonstrates how to high-precision applications enforce precision by reading the current altitude only if ideal VDOP is in progress. <code lang="VB"> ' Is ideal precision present right now? If DilutionOfPrecision.CurrentVertical.Rating = DilutionOfPrecisionRating.Ideal Then ' Yes. Output the current altitude above sea level Debug.WriteLine(Distance.CurrentAltitude.ToString) Else ' No. The current altitude is not accurate enough to work with End If </code> <code lang="C#"> // Is ideal precision present right now? if (DilutionOfPrecision.CurrentVertical.Rating == DilutionOfPrecisionRating.Ideal) { // Yes. Output the current altitude above sea level Debug.WriteLine(Distance.CurrentAltitude.ToString()); } else { // No. The current altitude is not accurate enough to work with } </code> </example> <seealso cref="P:StormSource.Gps.DilutionOfPrecision.CurrentHorizontal">CurrentHorizontal Property</seealso> <seealso cref="P:StormSource.Gps.DilutionOfPrecision.CurrentMean">CurrentMean Property</seealso> </member><member name="P:StormSource.Gps.DilutionOfPrecision.CurrentMean"> <summary>Returns the current average confidence level in positional measurements.</summary> <value>Read only. A <strong>DilutionOfPrecision</strong> object.</value> <remarks> This property is typically used to check for the overall confidence level in latitude, longitude and altitude measurements without instantiating an object. This property is updated automatically as new information is received from the GPS device. </remarks> <example> This example demonstrates how to high-precision applications enforce precision by reading the current altitude only if ideal VDOP is in progress. <code lang="VB"> ' Is ideal precision present right now? If DilutionOfPrecision.CurrentMean.Rating = DilutionOfPrecisionRating.Ideal Then ' Yes. Output the current position and altitude above sea level Debug.WriteLine(Position.CurrentPosition.ToString) Debug.WriteLine(Distance.CurrentAltitude.ToString) Else ' No. The current altitude is not accurate enough to work with End If </code> <code lang="C#"> // Is ideal precision present right now? if (DilutionOfPrecision.CurrentMean.Rating == DilutionOfPrecisionRating.Ideal) { // Yes. Output the current altitude above sea level Debug.WriteLine(Position.CurrentPosition.ToString()); Debug.WriteLine(Distance.CurrentAltitude.ToString()); } else { // No. The current altitude is not accurate enough to work with } </code> </example> <seealso cref="P:StormSource.Gps.DilutionOfPrecision.CurrentVertical">CurrentVertical Property</seealso> <seealso cref="P:StormSource.Gps.DilutionOfPrecision.CurrentHorizontal">CurrentHorizontal Property</seealso> </member><member name="M:StormSource.Gps.DilutionOfPrecision.Equals(StormSource.Gps.DilutionOfPrecision)"> <summary> Compares the current instance to another DilutionOfPrecision object. </summary> <param name="value"></param> <returns></returns> </member><member name="M:StormSource.Gps.DilutionOfPrecision.Equals(StormSource.Gps.DilutionOfPrecisionRating)"> <summary> Compares the current instance with the specified in-English rating. </summary> <param name="value"></param> <returns></returns> </member><member name="M:StormSource.Gps.DilutionOfPrecision.Equals(System.Object)"> <summary> Compares the current instance with the specified object. </summary> <param name="value"></param> <returns></returns> </member><member name="M:StormSource.Gps.DilutionOfPrecision.GetHashCode"> <summary> Returns a unique code for this object used for hash tables. </summary> <returns></returns> </member><member name="M:StormSource.Gps.DilutionOfPrecision.Equals(System.Double)"> <summary> Compares the current instance to the specified DOP value. </summary> <param name="value"></param> <returns></returns> </member><member name="P:StormSource.Gps.DilutionOfPrecision.Rating"> <summary>Returns an in-English interpretation of a dilution of precision measurement.</summary> <value> Read only. A value from the <see cref="T:StormSource.Gps.DilutionOfPrecisionRating">DilutionOfPrecisionRating</see> enumeration. </value> <remarks> <para>This property is provided to simplify the process of learing about DOP and enforcing minimum precision in applications. This property can also create more readable code. The possible values of this property are as follows:</para> <table width="90%" cellpadding="2" cellspacing="1" border="1"> <tr> <td><strong>Rating</strong></td> <td><strong>Range</strong></td> <td><strong>Description</strong></td> </tr> <tr> <td><strong>Ideal</strong></td> <td>1</td> <td>This is the highest possible confidence level to be used for applications demanding the highest possible precision at all times. The receiver probably has an almost completely unobstructed view of the sky (no nearby buildings or other tall objects). This level of accuracy is unrealistic for most applications.</td> </tr> <tr> <td><strong>Excellent</strong></td> <td>2-3</td> <td>At this confidence level, positional measurements are considered accurate enough to meet all but the most sensitive surveying applications. The receiver has multiple satellite acquired from various positions in the sky.</td> </tr> <tr> <td><strong>Good</strong></td> <td>4-6</td> <td>Represents a confidence level that is appropriate for most business decisions. At this level, positional measurements could be used to make reliable in-route navigation suggestions to the user. Satellites involved in a fix are probably distributed evenly throughout the sky.</td> </tr> <tr> <td><strong>Moderate</strong></td> <td>7-8</td> <td>Represents a medium confidence level. Positional measurements could be used for calculations, but the fix quality could still be improved. Advise to the user to find a more open view of the sky or wait for more satellites to join the fix is recommended.</td> </tr> <tr> <td><strong>Fair</strong></td> <td>9-20</td> <td>Represents a low confidence level. Positional measurements can be used for only general purposes: displaying the approximate location, approximate distance.</td> </tr> <tr> <td><strong>Poor</strong></td> <td>21-50</td> <td>Represents the minimum confidence level. The satellite fix, if present, is unstable. The current position should be reported only to show approximate location.</td> </tr> </table> <para>This property is updated automatically when the <see cref="P:StormSource.Gps.DilutionOfPrecision.Value">Value</see> property changes.</para> </remarks> <example> This example demonstrates how an application could enfore a minimum confidence level. A variable stores the most recent position which meets the required level, and the Rating property is used to either discard the new value and keep the existing one, or to update the variable to the new value. Note that you can use less-than-or-equal-to operators since enumerative values have integer values as well. <code lang="VB"> Dim WithEvents GPS As New Receiver() Dim CurrentAcceptablePosition As Position Dim MinimumRequiredConfidence As DilutionOfPrecisionRating = DilutionOfPrecisionRating.Good ' Occurs whenever the current position has changed Private Sub OnPositionChanged(ByVal sender As Object, ByVal e As PositionEventArgs) Handles GPS.PositionChanged ' Is the current accuracy level good enough? If GPS.MeanDilutionOfPrecision.Rating <= MinimumRequiredConfidence Then ' Yes. Update the position CurrentAcceptablePosition = e.Position Else ' No. Do not update the variable, and ignore the new position End If End Sub </code> <code lang="C#"> Receiver GPS = new Receiver(); Position CurrentAcceptablePosition; DilutionOfPrecisionRating MinimumRequiredConfidence = DilutionOfPrecisionRating.Good; // Occurs whenever the current position has changed void OnPositionChanged(Object sender, PositionEventArgs e) { // Is the current accuracy level good enough? if (GPS.MeanDilutionOfPrecision.Rating <= MinimumRequiredConfidence) { // Yes. Update the position CurrentAcceptablePosition = e.Position } else { // No. Do not update the variable, and ignore the new position } } </code> </example> <seealso cref="T:StormSource.Gps.DilutionOfPrecisionRating">DilutionOfPrecisionRating Enumeration</seealso> <seealso cref="P:StormSource.Gps.DilutionOfPrecision.Value">Value Property</seealso> </member><member name="P:StormSource.Gps.DilutionOfPrecision.Type"> <summary> Identifies whether the object is describing mean, horizontal or vertical dilution of precision. </summary> <value> A value from the <see href="StormSource.Gps.DilutionOfPrecisionType"> DilutionOfPrecisionType</see> enumeration. </value> <remarks> This property is typically used when handling multiple DOP-related events in one method, and some distinction is needed between multiple DOP objects. </remarks> </member><member name="P:StormSource.Gps.DilutionOfPrecision.Value"> <summary>Indicates the confidence level of a positional measurement.</summary> <value>An <strong>Integer</strong> value.</value> <remarks> <para>This property is used to determine whether or not a positional measurement should be ignored due to insufficient accuracy. This property can hold values between 1.0 and 50.0, where 1.0 means ideal accuracy and 50.0 means measurements may be off by a factor of fifty. Typically, DOP values start at fifty when the GPS device first begins searching for satellites, then values drop lower once a fix has been acquired and more satellites become involved in the fix.</para> <para>When this property changes, the <see cref="E:StormSource.Gps.DilutionOfPrecision.ValueChanged(System.Object,StormSource.Gps.DilutionOfPrecisionEventArgs)">ValueChanged</see> event is raised.</para> </remarks> <example> This example examines the horizontal dilution of precision to see if positional measurements are accurate enough for en-route navigation. <code lang="VB"> Dim MyReceiver As New Receiver() ' Is the horizontal DOP six or less? If MyReceiver.HorizontalDilutionOfPrecision.Value <= 6 Then ' Yes. The position is accurate enough for in-car navigation Else ' No. Precision may be too low to make an intelligent navigation recommendation End If </code> <code lang="C#"> Receiver MyReceiver = New Receiver(); // Is the horizontal DOP six or less? if (Receiver.HorizontalDilutionOfPrecision.Value <= 6) { // Yes. The position is accurate enough for in-car navigation } else { // No. Precision may be too low to make an intelligent navigation recommendation } </code> </example> <seealso cref="P:StormSource.Gps.DilutionOfPrecision.Rating">Rating Property</seealso> <seealso cref="E:StormSource.Gps.DilutionOfPrecision.ValueChanged(System.Object,StormSource.Gps.DilutionOfPrecisionEventArgs)">ValueChanged Event</seealso> </member><member name="M:StormSource.Gps.DilutionOfPrecision.ToString"> <summary>Returns the value of a DOP measurement in a user-friendly format.</summary> <remarks> This method is typically used to present the value of a DOP rating to a user interface. </remarks> <returns>A <strong>String</strong> in the following format: "VV (RRRRRR)" where <strong>V</strong> is the Value property, and <strong>R</strong> is the associated rating from the <see cref="P:StormSource.Gps.DilutionOfPrecision.Rating">Rating</see> property. </returns> <example> This example sets the text of a TextBox to the current mean dilution of precision. <code lang="VB"> ' This produces a result such as "1 (Ideal)" or "47 (Poor)", etc. MyTextBox.Text = Receiver.MeanDilutionOfPrecision.ToString() </code> <code lang="C#"> // This produces a result such as "1 (Ideal)" or "47 (Poor)", etc. MyTextBox.Text = Receiver.MeanDilutionOfPrecision.ToString(); </code> </example> </member><member name="T:StormSource.Gps.DilutionOfPrecision"> <summary>Represents a confidence level in positional measurements.</summary> <remarks> <para>Dilution of precision (or DOP for short) is an important concept in GPS programming because it describes how much you can actually trust the device when it reports your position. Any applications which perform recommendations based on the current location -- such as in-car driving directions -- must analyze DOP values frequently to minimize incorrect suggestions.</para> <para>DOP values can be measured in three ways: <see cref="P:StormSource.Gps.DilutionOfPrecision.CurrentMean">mean</see>, <see cref="P:StormSource.Gps.DilutionOfPrecision.CurrentHorizontal">horizontal</see>, and <see cref="P:StormSource.Gps.DilutionOfPrecision.CurrentVertical">vertical</see>. Mean dilution of precision (also known as MDOP or PDOP) reports the overall confidence in any measurement of latitude, longitude or altitude. Horizontal DOP (or HDOP) reports the confidence level of latitude/longitude measurements. Finally, vertical DOP reports the confidence level of altitude measurements.</para> <para>A dilution of precision measurement can be between one and fifty, where one represents ideal accuracy, and fifty means that measurements can be grossly inaccurate by a factor of fifty. A value of six or less is recommended for applications which make recommendations based on the current position, and a value of three or less is required for any application which requires high precision, such as for land surveys.</para> <para>The exact value of this property depends on the distribution of <see cref="P:StormSource.Gps.SatelliteCollection.FixedCount">fixed satellites</see> in the sky. If a fixed satellite is in each quadrant of the sky (further apart), DOP values are smaller because there are fewer possible trilateration solutions. On the other hand, if all fixed satellites are closer together and almost directly overhead, DOP values are larger because there are many trilateration solutions. (Trilateration is the process of determining where multiple circles intersect.)</para> <para> <img src="GoodDOP.jpg"/> <img src="PoorDOP.jpg"/> </para> <para>In order to simplify the process of programming with DOP, the <see cref="P:StormSource.Gps.DilutionOfPrecision.Rating">Rating</see> property was developed. This property returns DOP values in the form of an in-English description. When used frequently, this property can help developers to maximize precision and intelligence during automated business decisions.</para> </remarks> <seealso cref="P:StormSource.Gps.DilutionOfPrecision.Rating">Rating Property</seealso> <example> This example demonstrates how DOP values are typically used in applications to make business decisions. <code lang="VB"> ' How accurate is the position? Select Case Receiver.MeanDilutionOfPrecision.Rating Case DilutionOfPrecisionRating.Ideal ' Used when the utmost precision is absolutely necessary Case DilutionOfPrecisionRating.Excellent ' Minimum level for high-precision applications Case DilutionOfPrecisionRating.Good ' Minimum level for en-route navigation Case DilutionOfPrecisionRating.Moderate ' Middle of the road, OK to show as approximate location Case DilutionOfPrecisionRating.Fair ' The fix solution should not be used for decision-making Case DilutionOfPrecisionRating.Poor ' Either no fix is available or the fix is unstable End Select </code> <code lang="C#"> // How accurate is the position? switch(Receiver.MeanDilutionOfPrecision.Rating); { case DilutionOfPrecisionRating.Ideal: // Used when the utmost precision is absolutely necessary case DilutionOfPrecisionRating.Excellent: // Minimum level for high-precision applications case DilutionOfPrecisionRating.Good: // Minimum level for en-route navigation case DilutionOfPrecisionRating.Moderate: // Middle of the road, OK to show as approximate location case DilutionOfPrecisionRating.Fair: // The fix solution should not be used for decision-making case DilutionOfPrecisionRating.Poor: // Either no fix is available or the fix is unstable } </code> </example> </member><member name="F:StormSource.Gps.Speed.SpeedOfLight"> <summary>Returns the rate of travel of light in a vacuum.</summary> <remarks> The speed of light is used to determine distances such as the meter, which is defined as the distance travelled by light for 1/299792458th of a second. </remarks> </member><member name="F:StormSource.Gps.Speed.SpeedOfSoundAtSeaLevel"> <summary>Returns the rate of travel of sound waves at sea level.</summary> </member><member name="E:StormSource.Gps.Speed.ValueChanged(System.Object,StormSource.Gps.SpeedEventArgs)"> <summary>Occurs when the Value property has changed.</summary> <remarks> This event is typically used to monitor the current rate of travel. For example, an application could use this event to see if the Speed has just gone over 50MPH, at which point an alarm would occur. </remarks> </member><member name="E:StormSource.Gps.Speed.UnitsChanged(System.Object,StormSource.Gps.SpeedEventArgs)"> <summary>Occurs when the Units property has changed.</summary> <remarks> <para>This event is typically used to recalculate formulas based on a speed measurement, it's Unit type in particular.</para> <para><img src="BestPractice.jpg"/></para><para><strong>Always explicitly convert to a specific speed unit type before performing mathematics.</strong></para> <para>Since the Units property of the Speed class can be modified, it is not safe to assume that a speed measurement will always be of a certain unit type. Therefore, use a conversion method such as <see cref="M:StormSource.Gps.Speed.ToKilometersPerHour"> ToKilometersPerHour</see> or <see cref="M:StormSource.Gps.Speed.ToStatuteMilesPerHour"> ToStatuteMilesPerHour</see> to ensure that the speed is in the correct unit type before perfoming mathematics.</para> </remarks> </member><member name="M:StormSource.Gps.Speed.#ctor"> <summary>Creates a new instance of zero meters.</summary> </member><member name="M:StormSource.Gps.Speed.#ctor(System.Double,StormSource.Gps.SpeedUnit)"> <summary>Creates a new instance using the specified value and unit type.</summary> <remarks>This is the most frequently used constructor of the speed class.</remarks> <param name="value">A <strong>Double</strong> containing a speed measurement.</param> <param name="units"> A <see cref="T:StormSource.Gps.SpeedUnit">SpeedUnit</see> value describing the value's type. </param> </member><member name="M:StormSource.Gps.Speed.#ctor(System.String)"> <param name="value"> <para>A <strong>String</strong> in any of the following formats (or a variation depending on the local culture):</para> <para> <table cellspacing="0" cols="4" cellpadding="2" width="100%"> <tbody> <tr> <td>vv uu</td> <td>vv.v uu</td> <td>vvuu</td> </tr> </tbody> </table> </para> <para>Where <strong>vv.v</strong> indicates a numeric value, and uu is any of the following case-insensitive units:</para> <para> <table cellspacing="0" cols="4" cellpadding="2" width="100%"> <tbody> <tr> <td>FT/S</td> <td>FT/SEC</td> <td>FEET PER SECOND</td> <td>FEET PER SEC</td> </tr> <tr> <td>FEET/SEC</td> <td>KPH</td> <td>KM/H</td> <td>KM/HR</td> </tr> <tr> <td>KILOMETERS/HOUR</td> <td>KM/S</td> <td>KM/SEC</td> <td>KM/SECOND</td> </tr> <tr> <td height="18">KNOT</td> <td height="18">KNOTS</td> <td height="18">KTS</td> <td height="18">M/S</td> </tr> <tr> <td>M/SEC</td> <td>M/SECOND</td> <td>MPH</td> <td>MI/HR</td> </tr> <tr> <td>MILES/HOUR</td> <td></td> <td></td> <td></td> </tr> </tbody> </table> </para> <para><em><font size="2">To request additional unit types, please send feedback by clicking the link at the bottom of this page.</font></em></para> </param> <remarks> This powerful method is designed to simplify the process of parsing values read from a data store or typed in by the user. </remarks> </member><member name="M:StormSource.Gps.Speed.Clone"> <summary>Creates a mutable copy of the current instance.</summary> </member><member name="P:StormSource.Gps.Speed.CurrentSpeed"> <summary>Returns the current rate of travel.</summary> <value>A <strong>Speed</strong> object.</value> <remarks> This shared property provides the same functionality as the <strong>Speed</strong> property of the <see cref="T:StormSource.Gps.Receiver">Receiver</see> class. </remarks> </member><member name="M:StormSource.Gps.Speed.ToFeetPerSecond"> <summary>Converts the current measurement into feet per second.</summary> <remarks>The measurement is converted regardless of its current unit type.</remarks> </member><member name="M:StormSource.Gps.Speed.ToKilometersPerHour"> <remarks>The measurement is converted regardless of its current unit type.</remarks> <summary>Converts the current measurement into kilometers per hour.</summary> </member><member name="M:StormSource.Gps.Speed.ToKilometersPerSecond"> <remarks>The measurement is converted regardless of its current unit type.</remarks> <summary>Converts the current measurement into kilometers per second.</summary> </member><member name="M:StormSource.Gps.Speed.ToKnots"> <remarks>The measurement is converted regardless of its current unit type.</remarks> </member><member name="M:StormSource.Gps.Speed.ToMetersPerSecond"> <remarks>The measurement is converted regardless of its current unit type.</remarks> </member><member name="M:StormSource.Gps.Speed.ToStatuteMilesPerHour"> <remarks>The measurement is converted regardless of its current unit type.</remarks> </member><member name="P:StormSource.Gps.Speed.Units"> <remarks> <para>Following proper scientific practices, speed measurements are always made using a value paired with a unit type. When this property changes, the <see cref="E:StormSource.Gps.Speed.UnitsChanged(System.Object,StormSource.Gps.SpeedEventArgs)">UnitsChanged</see> event is raised.</para> <para><img src="BestPractice.jpg"/></para><para><strong>Always explicitly convert to a specific speed unit type before performing mathematics.</strong></para> <para>Since the Units property of the Speed class can be modified, it is not safe to assume that a speed measurement will always be of a certain unit type. Therefore, use a conversion method such as <see cref="M:StormSource.Gps.Speed.ToKilometersPerHour"> ToKilometersPerHour</see> or <see cref="M:StormSource.Gps.Speed.ToStatuteMilesPerHour"> ToStatuteMilesPerHour</see> to ensure that the speed is in the correct unit type before perfoming mathematics.</para> </remarks> <value> A value from the <see cref="T:StormSource.Gps.SpeedUnit">SpeedUnits</see> enumeration. </value> </member><member name="P:StormSource.Gps.Speed.Value"> <summary>Indicates the numeric portion of a speed measurement.</summary> <remarks> This property is combined with the <see cref="P:StormSource.Gps.Speed.Units">Units</see> property to form a complete speed measurement. When this property changes, the <see cref="E:StormSource.Gps.Speed.ValueChanged(System.Object,StormSource.Gps.SpeedEventArgs)">ValueChanged</see> event is raised. </remarks> </member><member name="M:StormSource.Gps.Speed.Parse(System.String)"> <summary>Creates a speed measurement based on a string value.</summary> <param name="value"> <para>A <strong>String</strong> in any of the following formats (or variation depending on the local culture):</para> <para> <table cellspacing="0" cols="4" cellpadding="2" width="100%"> <tbody> <tr> <td>vu</td> <td>vv.vu</td> <td>v u</td> </tr> </tbody> </table> </para> <para>where <strong>vv.v</strong> is a decimal value and <strong>u</strong> is a unit type made from words in the following list:</para> <para> <table cellspacing="0" cols="3" cellpadding="2" width="100%"> <tbody> <tr> <td>FEET</td> <td>FOOT</td> <td>METER</td> </tr> <tr> <td>METERS</td> <td>METRE</td> <td>METRES</td> </tr> <tr> <td>KILOMETER</td> <td>KILOMETRE</td> <td>KILOMETERS</td> </tr> <tr> <td>KILOMETRES</td> <td>KNOT</td> <td>KNOTS</td> </tr> <tr> <td>MILE</td> <td>MILES</td> <td>STATUTE MILE</td> </tr> <tr> <td>STATUTE MILES</td> <td>F</td> <td>FT</td> </tr> <tr> <td>M</td> <td>KM</td> <td>K</td> </tr> <tr> <td>PER</td> <td>-PER-</td> <td>/</td> </tr> <tr> <td>SECOND</td> <td>SEC</td> <td>S</td> </tr> <tr> <td>HOUR</td> <td>HR</td> <td>H</td> </tr> </tbody> </table> </para> <para>For example, "12 miles per hour" is acceptable because the words "miles," "per," and "hour" are found in the above list. Some combinations are not supported, such as "feet/hour." The word combination should look similar to a value from the <see cref="T:StormSource.Gps.SpeedUnit">SpeedUnit</see> enumeration.</para> </param> <remarks> This powerful method simplifies the process of processing values read from a data store or entered via the user. This method even supports some natural language processing ability by understanding words (see list above). This method can parse any value created via the ToString method. </remarks> <returns>A new <strong>Speed</strong> object with the specified value and units.</returns> </member><member name="M:StormSource.Gps.Speed.ToString"> <summary>Outputs the speed measurement as a formatted string.</summary> </member><member name="M:StormSource.Gps.Speed.ToString(System.String)"> <summary> Outputs the speed measurement as a formatted string using the specified format. </summary> </member><member name="M:StormSource.Gps.Speed.ToString(System.String,System.IFormatProvider)"> <summary> Outputs the speed measurement as a formatted string using the specified format and culture information. </summary> </member><member name="M:StormSource.Gps.Speed.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)"> <summary>Populates the current instance from serialized data.</summary> </member><member name="T:StormSource.Gps.Speed"> <summary>Represents a measurement of an object's rate of travel.</summary> <remarks> <para>This class is used primarily by the Speed property of the Receiver class to allow for conversion from the native GPS unit type of knots to English and Metric system measurements. This class can be used for generalized mathematical conversion without requiring a GPS device, allowing for conversions between any of six speed unit types: knots, meters per second, kilometers per second, kilometers per hour, feet per second, and statute miles per hour.</para> <para><!--DXMETADATA end --> <!--DXMETADATA start type="FilteredItemList" scrap="INLINE_EXAMPLE" namespace="Example" source="Item" filter="type=inline" NoHeader="True" NoFooter="True" format="<h4 class=dxh4>$$Example$$</h4>%<see cref="source=item,id=##EXAMPLEINTRO">taggedcomment</see>%%%filtereditemlist%%" --><!--DXMETADATA end --> <!--DXMETADATA start type="FilteredItemList" scrap="MENU_LINK" namespace="seealso" source="Item" filter="" NoHeader="True" NoFooter="True" format="<h4 class=dxh4>$$See_Also$$</h4><para id=dxseealsocontent>%%filtereditemlist%%</para>" --></para> </remarks> </member><member name="E:StormSource.Gps.CrossTrackError.RecommendedSteeringDirectionChanged(System.Object,StormSource.Gps.CrossTrackErrorEventArgs)"> <summary> Occurs when the recommended steering direction has changed from left to right, or vice versa. </summary> <remarks>This event is Occurs when the <see cref="P:StormSource.Gps.CrossTrackError.RecommendedSteeringDirection">RecommendedSteeringDirection</see> property has changed. This event is typically used to notify the user that the corrective steering direction should change.</remarks> <seealso cref="P:StormSource.Gps.CrossTrackError.RecommendedSteeringDirection">RecommendedSteeringDirection Property</seealso> </member><member name="M:StormSource.Gps.CrossTrackError.#ctor"> <summary>Creates a new instance.</summary> </member><member name="M:StormSource.Gps.CrossTrackError.#ctor(StormSource.Gps.Distance)"> <summary>Creates a new instance with the specified cross-track error.</summary> </member><member name="M:StormSource.Gps.CrossTrackError.#ctor(System.Double,StormSource.Gps.DistanceUnit)"> <summary>Creates a new instance with the specified cross-track error.</summary> </member><member name="M:StormSource.Gps.CrossTrackError.#ctor(System.String)"> <summary>Creates a new instance with the specified cross-track error.</summary> </member><member name="M:StormSource.Gps.CrossTrackError.#ctor(System.String,StormSource.Gps.RecommendedSteeringDirection)"> <summary>Creates a new instance with the specified cross-track error and recommended steering direction.</summary> </member><member name="M:StormSource.Gps.CrossTrackError.#ctor(System.Double,StormSource.Gps.DistanceUnit,StormSource.Gps.RecommendedSteeringDirection)"> <summary>Creates a new instance with the specified cross-track error and recommended steering direction.</summary> </member><member name="P:StormSource.Gps.CrossTrackError.RecommendedSteeringDirection"> <summary> Indicates the recommended steering direction in order to resume a proper course towards a destination. </summary> <value>A value from the <see cref="P:StormSource.Gps.CrossTrackError.RecommendedSteeringDirection">RecommendedSteeringDirection</see> enumeration, either <strong>Left</strong> or <strong>Right</strong>.</value> <seealso cref="T:StormSource.Gps.RecommendedSteeringDirection">RecommendedSteeringDirection Enumeration</seealso> </member><member name="T:StormSource.Gps.CrossTrackError"> <summary>Represents information about the distance away from a proscribed course.</summary> <remarks><para>Cross-track error is used while traveling from an origin to a destination. Cross-track error measures the distance off-course and provides the recommended direction to steer in order to resume course. This information is most frequently used by pilots and is only valid when <see cref="P:StormSource.Gps.Receiver.OriginWaypoint">origin</see> and <see cref="P:StormSource.Gps.Receiver.DestinationWaypoint">destination</see> waypoints are set on the GPS device. </para> <para><img src="CrossTrackError.jpg"/></para> </remarks> </member><member name="F:StormSource.Gps.Position.NorthPole"> <summary>Represents a position at the north pole (90°N,0°E)</summary> </member><member name="F:StormSource.Gps.Position.SouthPole"> <summary>Represents a position at the south pole (90°S, 0°E)</summary> </member><member name="E:StormSource.Gps.Position.PositionChanged(System.Object,StormSource.Gps.PositionEventArgs)"> <summary>Occurs when the latitude or longitude properties have changed.</summary> <remarks> This event is typically used to receive notification when a specific position has changed, regardless if the change is specific to latitude or longitude. This event is not Occurs when the ellipsoid changes. </remarks> </member><member name="E:StormSource.Gps.Position.LatitudeChanged(System.Object,StormSource.Gps.LatitudeEventArgs)"> <summary>Occurs when the Latitude property has changed.</summary> </member><member name="E:StormSource.Gps.Position.LongitudeChanged(System.Object,StormSource.Gps.LongitudeEventArgs)"> <summary>Occurs when the Longitude property has changed.</summary> </member><member name="M:StormSource.Gps.Position.#ctor(StormSource.Gps.Latitude,StormSource.Gps.Longitude)"> <overloads>Creates a new instance.</overloads> </member><member name="M:StormSource.Gps.Position.#ctor(StormSource.Gps.Latitude,StormSource.Gps.Longitude,StormSource.Gps.Ellipsoid)"> <summary> Creates a new instance using the specified latitude, longitude and ellipsoid. </summary> <remarks> This constructor is commonly used when a new position must be created using an ellipsoid other than the default of WGS1984. </remarks> <param name="latitude">An angle from the equator between -90° and +90°.</param> <param name="longitude">An angle from the Prime Meridian between -90° and +90°.</param> <param name="ellipsoid">An ellipsoid to associate with the given latitude and longitude.</param> </member><member name="M:StormSource.Gps.Position.SpeedTo(StormSource.Gps.Position,System.TimeSpan)"> <summary> Returns the minimum speed required to travel from the current location to the specified destination within the specified period of time. </summary> </member><member name="M:StormSource.Gps.Position.SpeedTo(StormSource.Gps.Position,StormSource.Gps.Position,System.TimeSpan)"> <overloads> Calculates the minimum speed required to arrive at a destination in the given time. </overloads> <summary> Returns the minimum speed required to travel over land from the given starting point to the specified destination within the specified period of time. </summary> <returns> A <strong>Speed</strong> object containing the required minimum travel speed. </returns> <remarks> This method is typically used to compare the current speed with the minimum required speed. For example, if the current rate of travel is 30MPH and the minimum speed is 60MPH, it can be derived that the speed must be doubled to arrive at the destination on time. Of course, care must be taken when making any suggestion to increase driving speed. </remarks> <param name="start">The beginning point from which calculations are based.</param> <param name="destination">The ending point to which speed is calculated.</param> <param name="time">The amount of time allowed to reach the destination.</param> </member><member name="M:StormSource.Gps.Position.TimeTo(StormSource.Gps.Position)"> <summary> Returns the minimum time required to travel to the given destination at the current speed. </summary> <returns> A <strong>TimeSpan</strong> object indicating the minimum travel time required. </returns> <remarks> This method is typically used to figure out how much time it will take to travel from one place to another over land. The current speed is the speed reported by the GPS device. </remarks> <param name="destination">A <strong>Position</strong> object specifying a destination on Earth.</param> </member><member name="M:StormSource.Gps.Position.TimeTo(StormSource.Gps.Position,StormSource.Gps.Speed)"> <summary> Returns the minimum time required to travel to the given destination at the specified constant speed. </summary> </member><member name="M:StormSource.Gps.Position.TimeTo(StormSource.Gps.Position,StormSource.Gps.Position,StormSource.Gps.Speed)"> <overloads> Calculates the time required to arrive at a destination when traveling at the specified speed. </overloads> <summary> Returns the minimum amount of time required to reach the specified destination at the specified speed. </summary> </member><member name="M:StormSource.Gps.Position.DistanceTo(StormSource.Gps.Position,StormSource.Gps.Position)"> <overloads>Calculates the great circle distance between any two points on Earth.</overloads> <summary> Returns the distance over land from the given starting point to the specified destination. </summary> <returns> A <strong>Distance</strong> object containing the calculated distance in kilometers. </returns> <param name="start">A beginning point from which to calculate distance.</param> <param name="destination">The ending point of a segment.</param> <remarks> This method uses trigonometry to calculate the Great Circle (over Earth's curved surface) distance between any two points on Earth. The distance is returned in kilometers but can be converted to any other unit type using methods in the <see cref="T:StormSource.Gps.Distance">Distance</see> class. </remarks> </member><member name="M:StormSource.Gps.Position.IntersectionOf(StormSource.Gps.Position,StormSource.Gps.Angle,StormSource.Gps.Position,StormSource.Gps.Angle)"> <overloads>Calculates a position which marks the intersection of two vectors.</overloads> <summary>Calculates the point (if any) at which two imaginary lines intersect.</summary> <returns>A <strong>Position</strong> object specifying the intersection point.</returns> <remarks> This method uses trigonometry to calculate the point at which two lines intersect on Earth's surface. This method is typically used to see if two physical objects might meet at a point given their current direction of travel. </remarks> <param name="start">A position on Earth's surface.</param> <param name="startBearing">The direction of an imaginary line from the first position.</param> <param name="destination">A position on Earth's surface.</param> <param name="destinationBearing">The direction of an imaginary line from the second position.</param> </member><member name="M:StormSource.Gps.Position.Translate(System.Double,System.Double,StormSource.Gps.DistanceUnit)"> <overloads>Shifts the current instance by the specified bearing and distance.</overloads> <summary>Adjusts the current instance by the specified distance and bearing.</summary> <remarks> This method is typically used to adjust a position in order to be more accurate when compared to a physical landmark. </remarks> <param name="bearing">The direction in which to shift the current location.</param> <param name="distanceValue">The numeric portion of the distance to shift.</param> <param name="distanceUnit">The units portion of the distance to shift.</param> </member><member name="M:StormSource.Gps.Position.TranslateTo(StormSource.Gps.Position,StormSource.Gps.Angle,StormSource.Gps.Distance)"> <overloads> Returns the position shifted by the specified bearing and distance as new Position object. </overloads> <summary>Returns a new instance shifted by the specified direction and distance.</summary> <returns>A new <strong>Position</strong> object adjusted by the specified amount.</returns> <remarks> <para>This method is typically used to create an destination point relative to an existing location. For example, this method could be used to create a point ten miles northeast of the current location.</para> <para><em>NOTE: The trigonometric formula used for this method is subject to errors when the distance to translate falls below a quarter mile (approximately 433 meters).</em></para> </remarks> <param name="start">A <strong>Position</strong> to be adjusted.</param> <param name="bearing">A direction from the starting point to perform adjustment.</param> <param name="distance">The amount to adjust from the starting point.</param> <example> <code lang="VB" title="[New Example]" description="This example creates a destination point ten miles northwest of the current location."> ' Create a distance of ten miles Dim TravelDistance As New Distance(10, DistanceUnit.StatuteMiles) ' Calculate the point Dim DestinationPoint As Position DestinationPoint = Position.CurrentPosition.TranslateTo(Azimuth.NorthWest, TravelDistance) </code> </example> </member><member name="M:StormSource.Gps.Position.ToEllipsoid(StormSource.Gps.EllipsoidType)"> <overloads>Converts the positional measurement to another ellipsoid.</overloads> </member><member name="M:StormSource.Gps.Position.Equals(System.String,System.String,System.Int32)"> <overloads>Compares the equivalence of the current instance with the specified value.</overloads> </member><member name="M:StormSource.Gps.Position.ToUtmPosition(StormSource.Gps.Position,StormSource.Gps.EllipsoidType)"> <overloads>Converts the current instance to a UTM position.</overloads> </member><member name="M:StormSource.Gps.Position.InitialBearingTo(StormSource.Gps.Position,StormSource.Gps.Position)"> <overloads>Returns the direction of travel from one position to another.</overloads> </member><member name="P:StormSource.Gps.Position.Latitude"> <summary>Represents a distance north or south from the equator.</summary> </member><member name="P:StormSource.Gps.Position.Longitude"> <summary>Represents a distance east or west from the Prime Meridian.</summary> </member><member name="M:StormSource.Gps.Position.ToString(System.String)"> <overloads>Outputs the current instance as a formatted string.</overloads> </member><member name="P:StormSource.Gps.Position.Ellipsoid"> <summary>Represents the ellipsoid this positional measurement is based.</summary> </member><member name="M:StormSource.Gps.Position.Parse(System.String)"> <summary>Converts a string-based positional measurement into a Position object.</summary> </member><member name="M:StormSource.Gps.Position.Clone"> <summary>Returns a copy of the current instance.</summary> </member><member name="P:StormSource.Gps.Position.CurrentPosition"> <summary>Returns the current location reported by the GPS device.</summary> </member><member name="T:StormSource.Gps.Position"> <summary>Represents a location on Earth's surface marked by the intersection of latitude and longitude.</summary> <remarks><para><img src="Position.jpg"/></para></remarks> </member> </members> </doc>